【发布时间】:2012-01-26 16:57:48
【问题描述】:
我在检测 PDA 设备的 CF 应用程序中的套接字连接丢失时遇到问题。 我有一个静态类,它具有用于通信的静态方法(Connect()、Write()、Disconnect())。静态,因为所有表单都可以调用 Write 方法。
在 Connect 方法中,我调用 socket.Connect(ipEndpoint); 但是当设备没有 wifi 连接时,程序会在这条线上停止大约 20 秒,这太长了。此外,如果用户启动 Write() 方法(保存一些数据)并且 wifi 连接丢失,用户无法与表单交互并认为应用程序毛躁。由于 CF 套接字连接没有超时选项,控制套接字行为的最佳方法是什么? 我的想法是当套接字在 5 秒内没有响应时显示某种“通信表单”,这将尝试重新建立连接。如果用户决定退出应用程序,此表单将具有图形指示器(旋转时钟或类似的东西)向用户显示程序正在尝试连接和退出按钮。如果 socket.connect 成功,我将向用户显示上次使用的表单。 我认为这必须用线程来完成,但因为我没有这方面的经验。我需要帮助如何管理这种行为。
【问题讨论】:
标签: multithreading sockets compact-framework timeout connection