関数を呼び出すC#プログラムを作成しました。このプログラムをbackgndWorkerEnroll_DoWork
介して、スレッドを介して別の関数を呼び出します。初めてスレッドを開始した後、関数は正しく機能します。次に、メソッドを使用してスレッドを中止し、メソッドを再度thread.Abort()
呼び出します。thread.Start()
前の関数呼び出しは引き続き機能し、中止されません。どうすればスレッドを強制的にシャットダウンできますか?
public int capture()
{
System.Threading.Thread thEnroll = new System.Threading.Thread(delegate()
{
// winbio.OpenSession1();
refresult1 = winbio.Enroll1(finger, false, refresult);
//winbio.Enroll1(finger, false, refresult, out refresult1);
});
thEnroll.Name = "thEnroll";
thEnroll.Start();
while (true)
{
if (!thEnroll.IsAlive)
break;
}
thEnroll.Abort();
return result;
}
private void backgndWorkerEnroll_DoWork(object sender, DoWorkEventArgs e)
{
capture();
}
また、ボタンクリックイベントを介してbackgroundDo_Workを強制的に閉じるためのもう1つのquery.howもあります。