2016-04-11 33 views
0

Barkod taramaları yakalayan ve bunları merkezi bir sunucuya gönderen .Net Compact Framework ile yazılmış bir kiosk uygulamasına sahibim. İşlem o kadar hızlı ki "WAIT" bildirimi hiç görünmez. Kullanıcının başarılı bir taramanın gönderildiği konusunda geri bildirim yoktur. Zaman sınıflandırmasını kullanmak için kullanıcının 2 saniye boyunca kodu duraklatması için kullanıcı bilgilendirilir. Düzgün çalışmasını sağlayamıyorum. Kompakt Çerçevedeki Timer sınıfının, tam çerçevenin sahip olduğu bazı yöntemlerden yoksun olduğunu biliyorum. İşte zamanlayıcı

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

, saat ve alarm İşte

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

      this.timer1.Enabled = true; 

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

      this.timer1.Enabled = false; 

kullanmak benim kodudur benim olay atama olduğunu benim Kene olayı:

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; 

     } 
    } 

Kompakt orada Framework don yılında Timer.Start() ve Timer.Stop() yöntemleri gibi görünmüyor.

+0

. Application.DoEvents() üzerinde döngü; ideal bir çözüm değildir. – user34660

+0

Sorunun tam olarak nedir? Eğer sadece Start() 've' Stop() 'un yoksa, çözümü kendiniz sağladınız (sırasıyla" timer1.Enabled "öğesini" true "ve" false "olarak ayarlayın). –

cevap

0

UI iş parçacığı üzerindeki bilgileri değiştirmek için bir temsilci kullanmanız gerekebilir. StatusLabel() işlevini değiştirdiğiniz şeyi göremiyorum, ancak henüz yapmadıysanız bir temsilci deneyebilirsiniz.

Bkz: I "merkezi bir sunucuya gönderir" ama benim tahminim şekilde başarı ya da başarısızlık bundan bildirim almak için daha iyi olurdu olduğunu bilmiyorum How to update the GUI from another thread in C#?