2013-11-19 4 views
2

Я создал приложение для WCE (RF-терминал Motorola MC3190). Моя проблема в том, что приложение после 15 минут работы разбилось без какого-либо сообщения об ошибке. Кодировка исключений в коде невозможна. Независимо от того, работает ли я с приложением или нет. После сбоев, если я попробую закрыть каталог с exe-файлом (или что-нибудь еще), тогда Windows зависает, и через пару минут RF сбрасывается с жесткого диска.Сбой приложений после 15 минут, WCE 6.0 CF 3.5 Motorola MC3190

Приложение связывается через 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 
     }  
    } 
+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(); 
    } 
    } 
}