要使用 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# 使用 CancellationToken 绑定线程方法:实现安全可控的线程操作

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

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