比方說,在我的GUI應用程序中(它可以跨OSX/iOS移植),我有多個線程可能會向主應用程序線程發送通知。通知應該在Cocoa的輸入事件和重繪請求處理的相同上下文中處理。我的目標是在屏幕上反映來自併發線程的某些事件。將消息發佈到Cocoa應用程序的主事件循環?
在Windows上有PostMessage(),那麼它在OS X和iOS上的模擬是什麼?
dispatch_async()
似乎是這種緊密的候選,但是,文檔說:
目標隊列確定塊是否相對於提交到同一 隊列其它塊調用串行或 同時。
其中,誠實地說,只是造成混亂。另外,還不清楚哪個消息隊列要與dispatch_async
一起使用,以便相對於GUI事件對消息進行串行處理。
我喜歡積木,但不知何故,我發現這種方法更優雅,更好地融入到ObjC代碼中。感謝你的回答! – mojuba