1

たとえば、私の GUI アプリケーション (OSX/iOS 間で移植可能) には、メイン アプリケーション スレッドに通知を送信できる複数のスレッドがあるとします。通知は、Cocoa の入力イベントと再描画要求が処理されるのと同じコンテキスト内で処理する必要があります。私の目標は、同時スレッドから発生する特定のイベントを画面に反映することです。

Windows には PostMessage() がありますが、OS X と iOS での類似物は何ですか?

dispatch_async()これに近い候補のようですが、ドキュメントには次のように記載されています。

ターゲット キューは、同じキューに送信された他のブロックに関して、ブロックが順次または同時に呼び出されるかどうかを決定します。

正直なところ、混乱を招くだけです。dispatch_asyncさらに、メッセージが GUI イベントに関してシリアルに処理されるように、どのメッセージ キューを使用するかが明確ではありません。

4

2 に答える 2

2

A more old-school way to do it on OS X is the NSObject method performSelectorOnMainThread:withObject:waitUntilDone:. I expect that it works on iOS too.

于 2013-06-24T02:44:25.487 に答える