BookSleeveは非同期 IO を可能な限り使用するため、パフォーマンスが非常に優れています。
しかし、問題は、非同期操作から致命的な例外がスローされ、アプリケーションがクラッシュする可能性があることです。
キーワード await が役立つことはわかっていますが、すべての呼び出しに await を使用することはできません。
未処理の例外をグローバルにキャッチする方法はありますか?
BookSleeveは非同期 IO を可能な限り使用するため、パフォーマンスが非常に優れています。
しかし、問題は、非同期操作から致命的な例外がスローされ、アプリケーションがクラッシュする可能性があることです。
キーワード await が役立つことはわかっていますが、すべての呼び出しに await を使用することはできません。
未処理の例外をグローバルにキャッチする方法はありますか?
どのバージョンのライブラリを使用していますか? BookSleeve は独自の例外を内部的に特に監視しているため、クラッシュが発生することはありませんが、次のこともできます。
.Error
イベントを処理するTaskScheduler.UnobservedTaskException
イベントを処理する厳密には、これらはどちらも必須ではありません。アプリの閉鎖を防ぐのは後者ですが、繰り返しになりますが、コードの一部にバグがあり、1 つ以上のタスクが欠落していない限り、これは問題ではありません。
しかし、より一般的なレベルでは、タスクに何が起こるかを確認することをお勧めします。そうしたくない場合でも、例外をチェックするawait
a をサブスクライブする価値があるでしょう。ContinueWith
また、必ずしもする必要はありませんawait
。多くの場合、connection.Wait(result)
これも問題ありません。ただし、これにより、プライマリ スレッドが少し長く拘束されます (ただし、マルチプレクサは拘束されないことに注意してください)。