我想知道“ continueWhith”何时有例外。
我做了这样的代码。
Task.Factory.StartNew(() =>
{
if(HasException())
throw new Exception("Exception");
// Logic
}).ContinueWith(x =>
{
// Do something to UI.
}, CancellationToken.None, TaskContinuationOptions.NotOnFaulted,
_uiScheduler).continueWith(x =>
{
if (x.Exception.IsNotNull()) // Exception handling here.
ShowExceptionMessage(x.Exception);
}
我希望最后一次continueWith任务中有异常,但不是。
在最后的continueWith任务中没有异常是对的吗?
我想知道如何在continueWith中设置异常属性。
谢谢。
答案 0 :(得分:4)
在最后的continueWith任务中没有异常是对的吗?
是的,因为它是您的“对UI进行操作”任务的延续。如果第二个任务失败,x.Exception
中只会有一个例外。
实际上,我不希望您达到 的任何一个延续,因为您的第一个任务总是出错,并且第一个延续明确表示仅在 not 时才执行有毛病。
替代品:
TaskContinuationOptions.OnlyOnFaulted
进行第二个延续-那么您就不必完全需要例外检查。)理想情况下,我建议使用async / await,而不要使用所有继续传递的内容。它往往使事情变得简单得多。