2011-02-04 11 views
1

Windowsは、Ctrl-Cに対する応答としてコンソールアプリケーションでSIGINTをサポートしています。これは、Windowsがリモートスレッドから実行中のスレッドを中断する機能(プロセスも!)とシグナルハンドラを呼び出すことを意味します。SIGINTはNTネイティブAPIで何を翻訳しますか?

これはNT Native APIレベルでどのように機能しますか?このスレッド中断APIは、ユーザ空間内の他の目的に使用できますか?

答えて

1

http://msdn.microsoft.com/en-us/library/xdkz3x12(v=vs.71).aspxによると、SIGINTは新しいスレッドを作成して割り込みを処理します。

実際に実行中のスレッドには「割り込み」しないようです。独自のスレッドを生成するだけで、同じ効果を得ることができます。

ここでより多くのコメントがあります:

+0

ああ、確かに。残念なことに:/ – bdonlan

0

あなたは常にあなたの手順を実行し、それを再開するコンテキストを修正、ターゲットスレッドを一時停止することができます。醜いですが、プロシージャを実行するためにスレッドを中断したい場合にはうまくいくでしょう。

コンソールとCTRL + Cハンドラは、Win32構成であり、実際にはネイティブAPIレベルでは存在しません。

関連する問題