2016-04-11 63 views
0

我有一个使用.Net Compact Framework编写的自助服务终端应用程序,可捕获条形码扫描并将它们发送到中央服务器。这个过程非常快,我的“等待”通知从不出现。没有反馈给用户已提交成功的扫描。 我想使用Time类将代码暂停2秒,以便通知用户。我无法让它正常工作。我知道精简框架中的Timer类缺少一些完整框架所喜欢的方法。适用于Windows Embedded Compact的计时器

这里是我的事件指配

this.timer1.Tick += new EventHandler(StatusTick); 

这里是我的代码使用定时器

interval = Convert.ToInt32(x.ReadAppSetting("display_interval")); 
      this.timer1.Interval = interval; 

      this.timer1.Enabled = true; 

      while (exitFlag == false) 
      { 
       Application.DoEvents(); 
      } 

      this.timer1.Enabled = false; 

这里是我的Tick事件:

private void StatusTick(object sender, EventArgs e) 
    { 

     if (interval > 0) 
     { 
      changeStatusLabel("WAIT"); 
      labelCardNumber.Text = readerData.Text; 
      interval = interval - 1000; 
     } 
     else 
     { 
      changeStatusLabel("READY"); 
      labelCardNumber.Text = ""; 
      exitFlag = true; 

     } 
    } 

在Compact Framework的有别似乎不是Timer.Start()和Timer.Stop()方法。

+0

我不知道什么是“它们发送到一个中央服务器”是,但我的猜测是,这将是更好地从成功或失败的某种方式得到通知。循环Application.DoEvents();不是一个理想的解决方案。 – user34660

+0

你的问题到底是什么?如果只是缺少'Start()'和'Stop()',你已经提供了解决方案(将'timer1.Enabled'分别设置为'true'和'false')。 –

回答

相关问题