0

我的情况是我正在创建多个线程来执行一项工作。例如,您可以说“工作是处理一些数据”。现在,一旦用户按下“停止”按钮,我想中止所有这些线程并更新数据库中的作业状态。

    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。这样我就可以更新他们在数据库中的状态。

4

0 回答 0