OperationCanceledException
とTaskCanceledException
の違いは何ですか?私が.NET 4.5を使用していて、async
/await
のキーワードを使用している場合は、どちらを捕捉するべきですか?OperationCanceledExceptionとTaskCanceledExceptionの違いは?
65
A
答えて
75
OperationCanceledException
は、単にTaskCanceledException
の基本クラスです。前者をキャッチしても、後者はまだキャッチします。
並行収集に関する一部の操作では、実際にはというタスクが含まれていないため(少なくとも公開APIに関する限り)、ちょうどOperationCanceledException
がスローされます。例については、BlockingCollection.TryTake
を参照してください。
私はOperationCanceledException
を捕まえるでしょう。それは、それ自体が単にOperationCanceledException
を投げた操作のためにタスクがキャンセルされた場合です。あなたはおそらくそれを "ただの取り消し"として扱いたいと思うかもしれません。
関連する問題
- 1. OperationCanceledException VS TaskCanceledExceptionタスクがキャンセルされたとき
- 2. HttpClientでTaskCanceledExceptionが機能しない
- 3. Task.WaitAllはOperationCanceledExceptionをスローします
- 4. 処理されていないOperationCanceledExceptionがParallel.ForEachからスローされたとき
- 5. Xamarin:いくつかのURLでHttpClientが失敗する(TaskCanceledException)
- 6. サービスバスに送信するときにOperationCanceledExceptionが発生する
- 7. OWINパイプラインでOperationCanceledExceptionが発生する原因は何ですか?
- 8. WebApi 2:処理後のカスタムHttpResponseMessageメッセージハンドラのOperationCanceledExceptionがクライアントに返されない
- 9. Shutdown()を呼び出すときにFileSystemWatcherがTaskCanceledExceptionをスローするのを防ぐ
- 10. httpとデフォルトのservemuxの違いは?この違いは何
- 11. CSSのプロパティの違いは、Firefox 3.1と3.5の違いは?
- 12. PHPの::と - の違いは?
- 13. Scalaの&と&&の違いは?
- 14. tplデータフローブロックでスローされたOperationCanceledExceptionが取り込まれる
- 15. _declspecと__declspecの違いは?
- 16. Liferay:DLFileEntryLocalServiceUtilとDLAppLocalServiceUtilの違いは?
- 17. オブジェクトとハッシュの違いは?
- 18. hash_mapとunordered_mapの違いは?
- 19. smtpClient.send()とsmtpClient.SendAsync()の違いは?
- 20. MemcachedとHadoopの違いは?
- 21. .tagとタグの違いは
- 22. requireとremote.requireの違いは?
- 23. UseCookieAuthenticationとUseIdentityの違いは?
- 24. javax.sqlとjava.sqlの違いは?
- 25. NSURLConnectionとNSUrlSessionの違いは?
- 26. SPList.ContentTypesEnabledとSPList.AllowContentTypesの違いは?
- 27. データマッパーパターンとリポジトリパターンの違いは?
- 28. os.getenvとos.environ.getの違いは?
- 29. クラッシュダンプとハングダンプの違いは?
- 30. OnSaveInstanceとOnRetainNonConfigurationInstanceの違いは?
ほとんどの場合、ForEachAsyncはStephen Toubのブログhttps://blogs.msdn.microsoft.com/pfxteam/2012/03/05/implementing-a-simple-foreachasync-part-2/から提供されました。それから、 'await enumerable.ForEachAsync(async()=> {throw new ApplicationException(" Test ");});の内部で例外をスローすると、何とか '変更'されてTaskCanceledExceptionになります。それはどういう考えですか?これはcatch(OperationCanceledException)を介して 'true'のOperationCanceledExceptionをキャッチしたいのですが、このTaskCanceledException(本当にApplicationExceptionになるはずです)がキャッチされることは嫌です。 – Terry