将消息发布到Cocoa应用程序的主事件循环?

moj*_*uba 1 macos cocoa multithreading cocoa-touch ios

让我们说,在我的GUI应用程序中(它可以在OSX/iOS上移植)我有多个线程可以向主应用程序线程发送通知.应该在处理Cocoa的输入事件和重绘请求的相同上下文中处理通知.我的目标是在屏幕上反映来自并发线程的某些事件.

在Windows上有PostMessage(),那么它在OS X和iOS上的模拟是什么?

dispatch_async() 似乎是一个很接近的候选人,然而,文件说:

目标队列确定是否相对于提交到同一队列的其他块串行或同时调用该块.

老实说,除了造成混乱之外什么也没说.此外,还不清楚使用哪个消息队列,dispatch_async以便相对于GUI事件串行处理消息.

Ant*_* E. 6

You are right dispatch_async is the way to go. The queue you should look for is the main queue:

dispatch_async(dispatch_get_main_queue(), ^{
    NSLog(@"Got to main thread.");
});
Run Code Online (Sandbox Code Playgroud)