正确释放 CancellationTokenSource 资源
在.NET中,CancellationTokenSource
用于管理线程取消,需要显式释放以避免资源泄漏。虽然MSDN示例中经常省略此步骤,但正确管理资源至关重要。
为什么需要释放 CancellationTokenSource?
CancellationTokenSource
使用非托管资源(例如,内核事件),必须清理这些资源以防止内存泄漏。CancellationTokenSource
对象,因为它没有终结器。正确的释放方法
using
语句自动释放令牌源。ContinueWith
方法附加到任务中,该方法在令牌源上调用 Dispose()
。Dispose()
。可重用性
CancellationTokenSource
不可重用。启动任务或 PLINQ 查询后,请创建新的令牌源。不支持重置 IsCancellationRequested
和 Token
。
推荐策略
为了有效地管理多个 CancellationTokenSource
实例,请考虑以下方法:
using
语句(例如,等待并行任务时)。ContinueWith
或显式释放)。以上是何时应该处置 CancellationTokenSource?的详细内容。更多信息请关注PHP中文网其他相关文章!