2

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

これはNTネイティブAPIレベルでどのように機能しますか?このスレッド中断APIは、ユーザースペースの他の目的に使用できますか?

4

2 に答える 2

2

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

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

ここにもっと解説があります:

于 2011-02-04T12:59:23.063 に答える
0

いつでもターゲットスレッドを一時停止し、コンテキストを修正してプロシージャを実行してから再開できます。見苦しいですが、スレッドを中断してプロシージャを実行したい場合はうまくいきます。

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

于 2011-03-21T20:25:15.497 に答える