我编写了一个 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。