我有一个 WCF 应用程序,它有时会执行长时间运行的查询。我在客户端创建了代码,该代码了解套接字何时发生超时,并将采取措施稍后重新轮询服务器以获取答案。在 TimeoutException 发生之前,系统会抛出许多第一次机会异常,包括 SocketException。过去,在我发现并处理它们之前,第一次机会异常会大大降低我的应用程序的速度。
我想摆脱这些第一次机会异常,所以我创建了一个 try-catch 块来处理 SocketException 并在 VS2010 中打开异常并重新运行代码。当我这样做时,我看到调试器显示发生了 SocketException,但我的 catch 块从未进入。(见下文)
我发现了许多类似的帖子,包括C# SocketException 没有被捕获,但我找到的答案都没有解决如何捕获异常,或者我是否应该担心它。
所以我的问题是:
1)我应该担心这些第一次机会例外吗?
2)如果是这样,我如何让系统捕捉到它们?