这会通知未处理的异常:
new Thread(_ => { throw new Exception(); }).Start();
这不会(至少在您等待/检索结果之前):
Task.Factory.StartNew(() =>
{
throw new Exception();
});
为什么?抛出异常的线程发生了什么?它会死吗?
这是您运行任务但不需要其结果或需要等待它的问题,如下所示:
_operationQueue = new BlockingCollection<Operation>();
Task.Factory.StartNew(() =>
{
foreach (var item in _operationQueue.GetConsumingEnumerable())
{
// do something that throws
}
}, TaskCreationOptions.LongRunning);
在这种情况下,_operationQueue
剩下的状态是什么?
我知道我可以将 Continuation 与 TaskContinuationOptions.OnlyOnFaulted 一起使用,你能恢复处理吗?