2011-01-10 12 views
0

2番目のバックグラウンドスレッドを開始してメインスレッドを一時停止すると、最初のレスポンダーはまだ動作していますか?例えば、私は、-flagsChangedと呼ばれる上書きメソッドを持っていて、メインスレッドがオフラインの場合でもまだアクティブであるかどうか疑問に思っていました。Cocoa - NSThreadとFirst Responder

おかげで、

ケビン

答えて

4

irresponsiveなりthe main thread is responsible for handling events、アプリケーションUI以来、メインスレッドを一時停止しないでください。メインスレッドが一時停止している場合は、イベントを処理しないため、キーイベントを最初のレスポンダにディスパッチしません。

メインスレッドを一時停止する必要があると思われる場合は、スリープが必要な場合の動作がセカンダリスレッドにオフセットされるようにプログラムを再設計する必要があります。セカンダリスレッドからユーザーインターフェイスを更新する必要がある場合は、-performSelectorOnMainThread:withObject:waitUntilDone:を使用する必要があります。