1

関数を使用して ThreadA を作成しましたCreateThread。ThreadA 内で、CreateThread関数を使用して別のスレッド ThreadB が作成されます。

ここで、ThreadA から ThreadB を終了したいのですが、TerminateThread関数が失敗します。

ThreadA が ThreadB を終了する権利を持っていない可能性があるためですか? 私はこの状況に本当に混乱しています。

4

1 に答える 1

1

TerminateThread一般に、ロックを保持したままにしておくと、あらゆる種類の問題が発生する可能性があるため、決して使用しないでください。MSDNが言うように

MSDN

代わりにできることは、別のスレッドからの終了を通知するために使用できるイベント オブジェクトでスレッドを待機させることです。

通常のスレッド処理内で終了シグナルの定期的なチェックを実行する必要がある場合は、待機タイムアウトをゼロに設定して、スレッドが終了を待っている間も作業を続けることができます。

例は、この SO answer here にあります

于 2013-06-10T06:04:56.383 に答える