Eko*_*oms 5 .net c# task-parallel-library
如果第一部分失败,我试图阻止任务继续.
我的代码看起来像这样:
Task listener = Task.Factory.StartNew(openConnection).ContinueWith((t) => listenForNumber());
void openConnection()
{
try
{
//stuff
}
catch
{
//morestuff
}
}
void listenForNumber()
{
//even more stuff
}
Run Code Online (Sandbox Code Playgroud)
现在,如果openConnection()进入catch块,则不应执行listenForNuber()
我试过了 ContinueWith((t) => listenForNumber(),TaskContinuationOptions.NotOnFaulted);
但没有成功,任何帮助?:(
谢谢
TaskContiuationOptions.NotOnFaulted 除非你的方法出现故障,否则显然没有任何效果,即在执行期间抛出的异常未处理.
在你的catch块中,你应该throw;在执行完工作之后使用语句重新抛出异常(并保留堆栈跟踪)(可能会进行一些清理) - 否则不会再抛出异常,所以你的方法不会被视为"故障".