C# windows mobile 6.5背光事件断开插座

C# windows mobile 6.5背光事件断开插座,c#,winforms,compact-framework,windows-mobile-6.5,C#,Winforms,Compact Framework,Windows Mobile 6.5,我正在为一个仓库开发一个Windows6.5移动应用程序。我通过TCP连接到服务器,在背光熄灭之前一切正常 即使我没有发送任何东西,socket.IO异常也会被抛出(客户端中止连接),我的服务器应用程序会将客户端从池中删除 我的项目需要处理长时间(通常为8个工作小时)连接的客户。有没有办法检测到那个事件 我使用的是c#windows窗体和.NET3.5 (我刚刚想起了这个.LostFocus属性,但它没有按预期工作) @编辑 最后,我通过处理插座并重新连接解决了这个问题。如果有人需要检测,只需这

我正在为一个仓库开发一个Windows6.5移动应用程序。我通过TCP连接到服务器,在背光熄灭之前一切正常
即使我没有发送任何东西,socket.IO异常也会被抛出(客户端中止连接),我的服务器应用程序会将客户端从池中删除

我的项目需要处理长时间(通常为8个工作小时)连接的客户。有没有办法检测到那个事件
我使用的是c#windows窗体和.NET3.5

(我刚刚想起了这个.LostFocus属性,但它没有按预期工作)

@编辑

最后,我通过处理插座并重新连接解决了这个问题。如果有人需要检测,只需这样做:(不是最干净的,但有效)

并在powerstate更改时使用设置的bool变量进行确认


OpenNETCF.WindowsCE.PowerManagement.PowerDown+=新设备化(PowerManagement\u PowerDown)

这些移动设备试图节省电源以延长电池寿命。从“完全打开”到“完全关闭”(和),存在不同的功率状态。OEM可以定义哪些设备将在哪个电源状态下供电

我看到了不同的可能解决方案:

  • 避免设备更改电源状态,并根据以下代码设置电源要求:

  • 更改不同设备的电池空闲超时和(可能可用)电源设置。您可以将PowerRequirement设置为“完全打开”,但要处理代码中的空闲时间并降低背光

  • 更改注册表以将网络设备的设备电源状态设置为在系统电源状态进入挂起状态时不进入挂起。您可以使用注册表将设备电源状态映射到系统电源状态:

  • 使您的应用程序“系统电源状态感知”,并在设备挂起/恢复时关闭/重新打开套接字:。我在串口到键盘的楔形应用程序中使用了这种方法

  • 另请参阅BatteryLog,了解系统在更改电源状态时的功能


    可能还有更多解决方案…

    只需重新连接即可。您永远不应该依赖电池供电的无线移动设备的100%连接。事情发生了,只需重新连接并重试您的操作。非常感谢您的回复。23和4很有道理,但第三个似乎最适合我。我会试一试,等我做完后再选择答案。。
    try
     {
    // let it crash
     sthfailed = pollfailed = Form1.clientSocket.Client.Poll(10, SelectMode.SelectError);
    }
    catch (SocketException u)
                    {
                        progress++;}
    try
    {    //this is the easiest way, let it crash n detect it
         if (Form1.clientSocket.Client.Available == 0)
                            ;
    }
    catch (Exception h)
    { progress++; }   //if both 'try' blocks have failed its probably due to power state