首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何中止使用ThreadPool.QueueUserWorkItem创建的线程

要中止使用ThreadPool.QueueUserWorkItem创建的线程,可以使用CancellationTokenSource和CancellationToken。以下是一个示例代码:

代码语言:csharp
复制
using System;
using System.Threading;
using System.Threading.Tasks;

class Program
{
    static void Main(string[] args)
    {
        CancellationTokenSource cts = new CancellationTokenSource();
        CancellationToken token = cts.Token;

        // 将 CancellationToken 传递给线程
        ThreadPool.QueueUserWorkItem(new WaitCallback(DoWork), token);

        // 在需要时取消线程
        cts.Cancel();
    }

    static void DoWork(object state)
    {
        CancellationToken token = (CancellationToken)state;

        while (!token.IsCancellationRequested)
        {
            // 在此处执行任务

            // 如果任务完成,则退出循环
            break;
        }
    }
}

在上面的示例中,我们创建了一个CancellationTokenSource和CancellationToken,并将其传递给ThreadPool.QueueUserWorkItem创建的线程。在需要时,我们可以调用CancellationTokenSource.Cancel方法来取消线程。在DoWork方法中,我们检查CancellationToken.IsCancellationRequested属性以确定是否已请求取消。如果已请求取消,则退出循环并结束线程。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券