3

これを行う方法があったことを覚えています。これは、UNIXシグナルに似ていますが、あまり広く使用されていません。しかし用語が思い出せない。イベント/ミューテックスは使用されません。スレッドはランダムな場所で中断され、関数が呼び出され、戻るとスレッドが続行されます。

4

2 に答える 2

3

Windows には、特定のスレッドのコンテキストで関数を呼び出すことができる非同期プロシージャ コールがあります。APC はランダムな場所でスレッドを中断するだけではありません (これは危険です。スレッドはファイルへの書き込み中、ロックの取得中、またはカーネル モードである可能性があります)。代わりに、呼び出し元のスレッドが特定の関数を呼び出して変更可能な待機に入ると、APC がディスパッチされます (APC のドキュメントを参照してください)。

特定のスレッドでコードを呼び出す必要がある理由が、ユーザー インターフェイスを操作するためである場合は、更新するウィンドウ ハンドルにウィンドウ メッセージを送信またはポストする方が直接的です。ウィンドウ メッセージは、ウィンドウを作成したスレッドで常に処理されます。

于 2013-05-25T15:37:02.607 に答える