4

スレッドを作成しましたが、そのスレッドを一時停止できます。では、中断されたスレッドを強制終了または終了するにはどうすればよいですか?

スレッドを試してみたところABORT、スレッドが一時停止されて中止できないというランタイムエラーメッセージが表示されました。終了メソッドなどを探しましたが、存在しないようです。

myThread := new Thread(@BigLoop);
myThread.Start;

myThread.Suspend;
myThread.Abort; <<<===exception is raised.

では、中断されたスレッドをどのように強制終了または終了しますか?

4

2 に答える 2

1

中断されたスレッドを再開した後、スレッドを中止することができました。

myThread := new Thread(@BigLoop);
myThread.Start;

myThread.Suspend;


if MyThread.ThreadState = ThreadState.Suspended then
   myThread.Resume;

myThread.Abort; 
于 2012-12-21T17:04:08.960 に答える
0

中止を使用することはお勧めできないことに注意してください。より良い解決策は、waithandle (autoresetevent/manualresetevent) を使用して、実行を停止する必要があることをスレッドに通知することです。"Abort" は、com や pinvoke などのネイティブ コードを呼び出すものには機能しないことに注意してください。

于 2012-12-22T11:50:38.857 に答える