我的情况是我正在为执行一项工作创建多个线程。例如,您可以说" Job是处理一些数据。" 现在,一旦用户按下"停止"按钮,我想中止所有这些线程并更新数据库中的作业状态。
internal void CreateJobThread(Job job)
{
Interlocked.Increment(ref _threadCounter);
ThreadPool.QueueUserWorkItem(StartJobThread, job);
}
StartJobThread是正在做的工作。
internal void StartJobThread(object input)
{
try
{
//Do something
}
catch (Exception ex)
{
//Catch exception
}
finally
{
Interlocked.Decrement(ref _threadCounter);
}
}
请告诉我如何取消当前正在运行的所有主题。我怎样才能获得正在进行的工作的ID。这样我就可以在数据库中更新它们的状态。