gpt4 book ai didi

c# - 防止 Task.ContinueWith 发生异常

转载 作者:太空狗 更新时间:2023-10-29 22:24:26 25 4
gpt4 key购买 nike

如果第一部分失败,我试图阻止任务继续。

我的代码是这样的:

Task listener = Task.Factory.StartNew(openConnection).ContinueWith((t) => listenForNumber());

void openConnection()
{
try
{
//stuff
}
catch
{
//morestuff
}
}

void listenForNumber()
{
//even more stuff
}

现在,如果 openConnection() 进入 catch block ,则不应执行 listenForNuber()

我尝试了 ContinueWith((t) => listenForNumber(),TaskContinuationOptions.NotOnFaulted);

但是没有成功,有什么帮助吗? :(

谢谢

最佳答案

TaskContiuationOptions.NotOnFaulted 显然不会有任何效果,除非您的方法出现故障,即在执行过程中抛出的异常未得到处理。

在你的 catch block 中,你应该在你完成你的工作后使用 throw; 语句重新抛出异常(并保留堆栈跟踪)(可能进行一些清理) - 否则不会再次抛出异常,因此您的方法不会被视为“错误”。

关于c# - 防止 Task.ContinueWith 发生异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4958279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com