应用程序在15分钟后崩溃,WCE 6.0 CF 3.5摩托罗拉MC3190

时间:2013-11-19 10:03:02

标签: c# crash compact-framework windows-ce motorola

我为WCE创建了应用程序(RF终端Motorola MC3190)。我的问题是,运行15分钟后的应用程序崩溃没有一些错误消息。代码中没有异常捕获是可能的。无论我是否使用应用程序。崩溃之后,如果我尝试使用exe文件(或其他任何东西)关闭目录,那么Windows会冻结,几分钟后RF就会被严重重置。

应用程序通过TCP套接字与其他应用程序通信。基于来自其他应用程序的XML数据创建Windows控件和事件。一切都好,前15分钟(+/- 30秒)。这次我没有使用motorola 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
        }    
    }   

1 个答案:

答案 0 :(得分:1)

有必要进行一些改变。 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();
    }
  }
}