106

OperationCanceledExceptionとの違いは何TaskCanceledExceptionですか?.NET 4.5を使用していてasync/awaitキーワードを使用している場合、どれをキャッチする必要がありますか?

4

1 に答える 1

123

OperationCanceledExceptionは単にの基本クラスですTaskCanceledException-したがって、前者を捕まえたとしても、後者を捕まえることができます。

OperationCanceledException並行コレクションに対する一部の操作は、実際のタスクが含まれていないため(少なくとも、パブリックAPIに関する限り) 、ただスローします。例についてはを参照BlockingCollection.TryTakeしてください。

OperationCanceledExceptionそれ自体が投げたばかりの操作のためにタスクがキャンセルされた場合に備えて、私はキャッチしOperationCanceledExceptionます-あなたはおそらくそれを「ただのキャンセル」として扱いたいでしょう。

于 2012-10-23T22:46:49.827 に答える