私はここや他の場所で多くの解決策を読みましたが、それを正しく理解することはできませんでした。聞いてみるだけでちょっと恥ずかしいけど…
私のコード:
private void btnStart_Click(object sender, EventArgs e)
{
MyClass SomeData = new MyClass()
Thread ProcessThread = new Thread(c => StartService(SomeData));
ProcessThread.Start();
}
private void StartService(MyClass someData)
{
try
{
//System.Exception throws in this Execute method
someData.Execute();
}
catch(Exception Ex)
{
Show(Ex);
//Informing me some exception occurred.
}
}
Excuteメソッドで例外がスローされた場合(現在、テストのために意図的にスローしています)、スレッドabort
またはend
スレッドを起動して、同じメソッドを実行するためにANOTHERを開始することはできません。したがって、基本的に、そのスレッドを終了してから再実行したい場合。再実行が危険だと思われる場合は、再実行するか終了するかを人間が確認するのを待つ質問をします。とにかく、私はそれを終了することさえできず、スレッドはラインで何もしませんThread ProcessThread = new Thread(c => StartService(SomeData));
。
手伝っていただけませんか?