C# 中的 CancellationToken2024 年 8 月 29 日 | 4 分钟阅读 在本文中,您将学习如何在 C# 中实现 CancellationToken 及其示例。 什么是 CancellationToken?在 C# 中,用于异步操作的协作取消的强大机制是 CancellationToken。 它提供了一种简单的方法来取消不再需要或已超时的操作,它允许一个线程或任务向另一个线程或任务指示它希望取消其操作。 CancellationToken 是 .NET 中任务并行库 (TPL) 的重要组成部分,它提供了一种在各种框架组件中取消异步操作的标准化方式。 终止异步操作的有效方法是使用 CancellationToken。 可以协作取消任务和操作,并且可以从程序的任何部分启动取消请求。 关键组件C# 中的 CancellationToken 包含几个组件。一些主要的组成部分如下: 1. CancellationToken:它表示可用作取消信号的令牌。 2. CancellationTokenSource:创建和处理取消令牌提供了一种取消操作的方法。 注意事项
特点C# 中的 CancellationToken 有几个特性。一些主要的关键特性如下:
好处C# 中的 CancellationToken 有几个好处。一些主要的关键好处如下:
将 CancellationToken 传递给操作1. 基于任务的方法: CancellationToken 是 .NET 中大多数异步方法接受的可选参数,以允许取消。 例如 2. 取消请求:使用相关 CancellationTokenSource 的 Cancel() 方法向令牌发送取消信号。 处理取消1. 检查取消:在异步方法中使用 IsCancellationRequested 属性来确定是否正在请求取消。 2. 捕获 OperationCanceledException:将可能导致取消的代码包装在 try-catch 块中,以防止它抛出 OperationCanceledException。 示例让我们举一个例子来说明 C# 中的 CancellationToken。 输出 Press Enter to cancel the Task... The Task is running successfully... The Task is running successfully... The Task is running successfully... The Task is running successfully... The Task is running successfully... Press any key to exit... 说明 此 C# 代码演示了如何使用 CancellationToken 轻轻地取消异步活动。首先,必须创建 CancellationTokenSource 并从中获取 CancellationToken。接下来,它启动一个异步任务,在周期性操作时检查取消请求。在用户输入时调用 CancellationTokenSource 上的 Cancel() 会取消任务。最后,它等待任务完成,如果任务在完成之前被取消,则处理 OperationCanceledException。 使用场景当外部事件(例如用户输入、超时或应用程序关闭)需要取消异步操作时,CancellationToken 经常使用。为了防止资源泄漏并确保响应性,它允许应用程序正常终止长时间运行的进程。 结论总之,C# 的 CancellationToken 提供了一种强大且标准化的机制,用于协作取消异步操作。它通过分发令牌和检查取消请求,确保资源有效性和快速性,同时允许应用程序正常处理取消事件。 |
我们请求您订阅我们的新闻通讯以获取最新更新。