我为 WCE(射频终端摩托罗拉 MC3190)创建了应用程序。我的问题是应用程序在运行 15 分钟后崩溃,但没有出现任何错误消息。代码中的异常捕获是不可能的。不管我是否使用应用程序。崩溃后,如果我尝试使用 exe 文件(或其他任何文件)关闭目录,则 Windows 会卡住,几分钟后 RF 会被硬重置。
应用程序通过 TCP 套接字与其他应用程序通信。基于来自其他应用程序的 XML 数据创建 Windows 控件和事件。前 15 分钟(+/- 30 秒)一切正常。这次我没有使用摩托罗拉 EDMK 库。
解决方案的一些想法?
谢谢!
新闻:当我删除此代码时,应用程序停止崩溃。具体删除 Thread.Sleep(1000);有效果。
//using Symbol.Keyboard;
delegate void setBoolAlpha(bool alpha);
public void checkAlpha()
{
KeyPad KP = new KeyPad();
bool alpha = KP.AlphaMode;
showAlpha(alpha);
Thread.Sleep(1000);
checkAlpha();
}
public void showAlpha(bool alpha)
{
if (this.abc.InvokeRequired)
{
setBoolAlpha d = new setBoolAlpha(showAlpha);
this.Invoke(d, new object[] { alpha });
}
else
{
this.abc.Visible = alpha; //abc = Control panel
}
}
最佳答案
需要稍作改动。 CheckAlpha() 作为“IsBackground”线程运行。
delegate void setBoolAlpha(bool alpha);
public void checkAlpha()
{
while(true)
{
KeyPad KP = new KeyPad();
bool alpha = KP.AlphaMode;
showAlpha(alpha);
Thread.Sleep(500);
//checkAlpha();
}
}
}
关于c# - 应用程序在 15 分钟后崩溃,WCE 6.0 CF 3.5 Motorola MC3190,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20068465/