【发布时间】:2025-12-23 22:00:12
【问题描述】:
我正在使用此代码 sn-p 使用取消令牌执行异步查询:
var _client = new HttpClient( /* some setthngs */ );
_client.GetAsync(someUrl, cancellationToken).ContinueWith(gettingTask => {
cancellationToken.ThrowIfCancellationRequested();
SomeStuffToDO();
}, TaskScheduler.FromCurrentSynchronizationContext());
}, TaskScheduler.FromCurrentSynchronizationContext());
但是,当操作被取消时,cancellationToken.ThrowIfCancellationRequested(); 会抛出异常。我知道这条线应该是这个东西。但是,在开发环境中,异常会导致视觉工作室中断。我怎样才能避免这种情况?
【问题讨论】:
-
您的意思是“Visual Studio 休息一下”,VS 会停止并显示“异常”对话框吗?开发或运行时,如果您不处理异常,它将导致您的应用程序失败。您需要捕获并处理异常以避免这种情况。
-
@G.Stoynev 是 VS 停止并显示“异常”对话框。那么,我在哪里可以处理异常?在主线程还是异步?
标签: c#-4.0 asynchronous async-await cancellation cancellationtokensource