我有一個從輔助線程接收新數據的視圖。每次它,它應該重繪自己。然而,它在運行循環中表現不佳,經過一段時間(非確定性)後,我終於在控制檯中獲得了<Error>: kCGErrorIllegalArgument: CGSUnionRegionWithRect : Invalid region
消息。將呼叫同步到NSView的好方法是什麼?
我不知道什麼是正確的方式來跨線程同步調用[view setNeedsDisplay:YES]
;你可以幫我嗎?
要澄清一點,線程B(實際上是一個派遣隊列)通過調用這給了新的內容視圖:
-(void)setImageBuffer:(unsigned char*)buffer
{
/* image handling stuff; thread-safe */
[self setNeedsDisplay:YES]; // but this is not thread-safe
}
然後線程A,在其上運行的運行循環,應重新顯示視圖。
咩。 「NSObject」肯定是我想要看的最後一個地方。非常感謝你。 – zneak 2010-07-06 02:28:42
你可能想要閱讀「線程編程指南」,它會給你一個線索。 – JWWalker 2010-07-06 03:52:50
@JWWalker:也許你打算把它看作是一個輕鬆愉快的嬉皮士,但是你的評論會帶有侮辱性,這是不可取的。我自己不知道有這樣的指導,並通過其他方式瞭解我的知識。 – 2010-07-06 04:08:52