Laden...

Win CE: Unter CE 5.0 werden Meldungen verzögerungsfrei angezeigt, unter CE 6.0 verzögert

Erstellt von inflames2k vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.136 Views
inflames2k Themenstarter:in
2.298 Beiträge seit 2010
vor 12 Jahren
Win CE: Unter CE 5.0 werden Meldungen verzögerungsfrei angezeigt, unter CE 6.0 verzögert

Hallo,

ich habe eine Windows CE Anwendung, die auf 2 Plattformen läuft. (Win CE 5.0 und 6.0).

Auf dem Windows CE 5.0 Gerät werden Meldungen sofort ausgegeben und folgemeldungen sofort geöffnet.

Auf dem Windows CE 6.0 Gerät jedoch verzögert sich das laden der Dialoge um c.a. 2 - 3 Sekunden. Das ist nicht tragbar, da dies Anwendungen sind die in der Produktion eines Unternehmens wichtig sind.

Speziell gehe ich hier auf einen Anwendungsfall ein, der sich wie folgt darstellt:


- > Webservice Anfrage
- > Auswertung Ergebnis
     - > Sollen neue Daten erzeugt werden? 
          - ja -> Neue Daten erzeugen (Ja / Nein)) (Zeitlich auf beiden Geräten identisch)
          - nein -> Abbruchmeldung öffnen (CE 5.0 -> Sofort Meldung da, CE 6.0 Meldung nach 2 -3 Sekunden)

In Code sieht das auf's wesentliche beschränkt wie folgt aus:


DialogResult result = MessageBox.Show("Neue Daten erzeugen?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);

if(result == DialogResult.Yes)
  // some code ...
else
  MessageBox.Show("Durch Benutzer abgebrochen); // Die Meldung braucht auf CE 6.0 länger

Hat jemand eine Idee, woran diese liegen könnte?

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

inflames2k Themenstarter:in
2.298 Beiträge seit 2010
vor 12 Jahren

Hat wirklich keiner eine Idee, woran das liegen könnte?

Mir ist vorallem aufgefallen, das es scheinbar wirklich an den MessageBoxen liegt. - Kommentiere ich die Abfrage und die Fehlermeldung aus, ist alles in gewohnter Geschwindigkeit.

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

2.891 Beiträge seit 2004
vor 12 Jahren

Ist das nur bei Messageboxen so? Oder allgemein bei Forms?
Hast du mal eine eigene MessageBox-Implementierung ausprobiert?

inflames2k Themenstarter:in
2.298 Beiträge seit 2010
vor 12 Jahren

Ja ich habe eine eigene Implementierung versucht. - Diese hatte ich bereits, da sie in einem anderen Projekt notwendig war. - Das Problem tritt also richtigerweise wie du erkannt hast bei allen Forms auf.

Bei Start der Anwendung wird ein Anmeldebildschirm gezeigt, schon das Aufrufen des Hauptformulars dauert auf dem CE 5.0 Gerät mit .NETCF 2.0 nur einen Bruchteil der Zeit auf dem CE6.0 Gerät mit .NETCF 3.5. Mir ist das jedoch unerklärlich.

Der optimale Anwendungsfall - keine Abfrage nötig - läuft gewohnt schnell.

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

2.891 Beiträge seit 2004
vor 12 Jahren

Ist das Verhalten auf mehreren Geräten reproduzierbar oder hast du nur ein einziges Gerät zum Probieren?
Und sonst sind die Geräte auch identisch? (Wir hatten uns bei einem Problem, bei dem es auf einem Gerät lief, auf einem anderen aber nicht, schonmal einen Wolf gesucht, bis uns aufgefallen ist, dass ein Gerät ein englisches und das andere ein deutsches Betriebssystem hatte.

inflames2k Themenstarter:in
2.298 Beiträge seit 2010
vor 12 Jahren

Das Problem wurde durch unseren Kunden, nach der Migration vom CE 5.0 Gerät auf das 6.0 Gerät bemerkt und ist auf unserem Testgerät reproduzierbar. - Das beschränkt sich leider aber auf die Anwendung, andere Anwendungen funktionieren jedoch auf den neuen Geräten wie gewohnt. Ich bin derzeit am Verzweifeln. Der Kunde will ja auch Ergebnisse und das Problem liegt uns nun seit gut einer Woche vor.

// EDIT: Zuerst dachte ich, es hängt mit den Threads zusammen, die nebenläufig arbeiten. Allerdings war auch nach dem diese auskommentiert waren das Verhalten bemerkbar.

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

inflames2k Themenstarter:in
2.298 Beiträge seit 2010
vor 12 Jahren

Und sonst sind die Geräte auch identisch?

Wie meinst du die Frage?

Es handelt sich bei dem Gerät, bei dem die Anwendung läuft um ein Motorola (Symbol) MC3090, bei dem Gerät auf das die Anwendung migriert wurde um ein Motorola MC3190. Die größten Unterschiede zwischen den Geräten sind wohl die Plattform und das Compact Framework. Ansonsten ist der MC3190 von der Hardware besser als der MC3090, also kann ichs auch auf die Hardware nicht schieben.

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

A
764 Beiträge seit 2007
vor 12 Jahren

Hallo inflames2k

Hast du schon probiert mit einer Testanwendung den Fehler zu reproduzieren?

inflames2k Themenstarter:in
2.298 Beiträge seit 2010
vor 12 Jahren

Wie gesagt, andere von uns geschriebene Anwendungen, sogar eine sehr ähnliche haben das Problem nicht. Ich werd jetzt mal eine Ältere Version ausprobieren, um zu sehen ob eines der neuen Features der Grund ist.

// EDIT:

Es scheint wirklich eine Neuerung der Grund zu sein, die Anwendungsversion von 2009 läuft Fehlerfrei.

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

inflames2k Themenstarter:in
2.298 Beiträge seit 2010
vor 12 Jahren

Habe das Problem nun gefunden und behoben. Es lag an der Aktivierung / Deaktivierung der Scannerhardware.

Für alle, die eventuell mal vor dem gleichen Problem stehen:
Ich hatte im OnActivated und OnDeactivated des Formulars jeweils die Aktivierung und Deaktivierung des Scanners. Dies resultierte aus Fehlern in einer anderen Anwendung, die aber nach genauerem Hinsehen in der besagten Anwendung nicht auftreten können.

Nun wird beim öffnen der MessageBox oder jedes X-Beliebigen Formulars erst einmal die Hardware deaktiviert und um dem eins drauf zu setzen anschließend wieder deaktiviert. - Bei den Scannern der Reihe MC3090 scheint die Aktivierung / Deaktivierung der Hardware bedeutend schneller zu gehen, als bei den neuen Geräten. Daher kam es bei den neuen dazu, dass die Dialoge erst mit längerer Verzögerung aufgingen, da die Anwendung damit beschäftigt war die Hardware zu deaktivieren.

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |