c#紧凑框架检测连接关闭

c#紧凑框架检测连接关闭,c#,networking,compact-framework,C#,Networking,Compact Framework,我正在为Windows CE设备编写一个.NET Compact Framework应用程序。我的应用程序使用XML序列化数据包与桌面计算机通信 我遇到的是,如果网线被拔掉,我的stream.Read操作块就会无限期地被阻塞。my CF中不支持设置超时 我正在寻找如何处理这个问题的“最佳实践”答案。如果连接因任何原因关闭,我的循环应该停止并开始尝试重新连接 我已经找到了,但它不包括我需要的“使用”指令,而且我也不确定到底发生了什么 感谢所有提示,特别是如果它们解决了问题。谢谢 As stream

我正在为Windows CE设备编写一个.NET Compact Framework应用程序。我的应用程序使用XML序列化数据包与桌面计算机通信

我遇到的是,如果网线被拔掉,我的stream.Read操作块就会无限期地被阻塞。my CF中不支持设置超时

我正在寻找如何处理这个问题的“最佳实践”答案。如果连接因任何原因关闭,我的循环应该停止并开始尝试重新连接

我已经找到了,但它不包括我需要的“使用”指令,而且我也不确定到底发生了什么


感谢所有提示,特别是如果它们解决了问题。谢谢

As stream.Read是一个阻塞调用。您应该按照所有阻塞函数的建议,将代码移动到单独的线程中

然后可以使用停止线程。例如,首先使用Thread.Join,然后使用Thread.Abort()。将代码放在try/catch块内的线程中,捕获ThreadAbortException以了解线程何时被中止


当您开始编写线程化代码时,您必须找到一种与其余代码同步的方法。这通常使用委托和事件处理程序来完成。但是这是一项不同的任务,如果您以前没有做过这项工作,那么值得进行一些研究。

您没有包含任何类型的代码示例……您使用的是什么流类?直接使用Socket类可能会更幸运。