要使用CancellationToken绑定线程方法,首先需要创建一个CancellationTokenSource对象,然后使用该对象的Token属性获取CancellationToken。

接下来,可以将CancellationToken传递给线程方法,并在方法中使用该标记来检查是否取消了操作。

下面是一个示例代码:

using System;
using System.Threading;

class Program
{
    static void Main()
    {
        // 创建CancellationTokenSource对象
        CancellationTokenSource cancellationTokenSource = new CancellationTokenSource();

        // 获取CancellationToken
        CancellationToken cancellationToken = cancellationTokenSource.Token;

        // 创建一个新线程并绑定方法
        Thread thread = new Thread(() =>
        {
            // 在这里执行线程的操作
            for (int i = 0; i < 10; i++)
            {
                // 检查是否取消了操作
                if (cancellationToken.IsCancellationRequested)
                {
                    Console.WriteLine("操作已取消");
                    return;
                }

                Console.WriteLine("线程正在执行:" + i);
                Thread.Sleep(1000);
            }

            Console.WriteLine("操作完成");
        });

        // 启动线程
        thread.Start();

        // 等待用户输入以取消操作
        Console.WriteLine("按下任意键以取消操作");
        Console.ReadKey();

        // 取消操作
        cancellationTokenSource.Cancel();

        // 等待线程结束
        thread.Join();

        Console.WriteLine("程序结束");
    }
}

在上面的代码中,我们创建了一个新线程并在其中执行一个简单的循环操作。在每次循环中,我们检查CancellationToken是否已被请求取消,如果是,则输出"操作已取消"并返回。否则,继续执行操作。

在主线程中,我们等待用户输入以取消操作,然后调用CancellationTokenSource的Cancel方法来请求取消操作。最后,我们使用Thread.Join方法等待线程结束,并输出"程序结束"。

请注意,当CancellationToken被请求取消时,线程方法应该将操作终止并返回,以便及时释放资源和退出线程

C#TASK 使用CancellationToken绑定线程方法

原文地址: https://www.cveoy.top/t/topic/iQOo 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录