从BookSleeve Redis客户端缓存异步错误

时间:2013-08-12 07:15:06

标签: asynchronous redis booksleeve

BookSleeve在性能方面非常出色,因为它尽可能多地使用异步IO。

但问题是,它可能会从异步操作中抛出致命异常并使我的应用程序崩溃。

我知道关键字await可以提供帮助,但我无法使用await来进行每次通话。

有没有办法全局捕捉未处理的异常?

1 个答案:

答案 0 :(得分:1)

您使用的是哪个版本的库? BookSleeve在内部专门观察它自己的异常,以便它们不应该导致任何崩溃,但是,你也可以:

  • 处理.Error事件
  • 处理TaskScheduler.UnobservedTaskException事件
严格来说,这些都不是必需的。后者比防止应用程序关闭更重要:但应该无关紧要 - 除非某些代码中存在错误并且缺少一个或多个任务

但是在更一般的层面上,最好检查一下你的任务会发生什么。如果您不想await它们,则可能仍然值得订阅ContinueWith来检查异常。此外,您不一定需要await;在许多情况下,connection.Wait(result)也很好 - 虽然这确实会占用 little 更长的主线程(但请注意:它不会占用多路复用器)。