什么是睡了一定的时间,但能够被一个中断的最佳方式IsCancellationRequested从CancellationToken?
我正在寻找一个适用于.NET 4.0的解决方案.
我想写
void MyFunc (CancellationToken ct)
{
//...
// simulate some long lasting operation that should be cancelable
Thread.Sleep(TimeSpan.FromMilliseconds(10000), ct);
}
Run Code Online (Sandbox Code Playgroud) 如何将 LongRunning 标志专门传递给 Task.Run()?强调将任务创建标志放入较新的 API 中可能会有点混乱,尤其是使用该async模式。
我发现这篇文章声称这不是一个好主意async,不应该使用:http ://blog.i3arnon.com/2015/07/02/task-run-long-running/
我的理解是,这个标志实际上会导致 TPL 启动专用线程而不是给线程池带来压力,但特别是如果我的应用程序不涉及大量并行任务,这真的有什么大不了的吗?如果我预期的并行度小于默认线程池大小(无论是什么),我可以安全地忽略该标志吗?最糟糕的情况是线程池可能会在几百毫秒内缺乏线程?