Announcement

Collapse
No announcement yet.

VS2010 KeyPress + Timer

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • VS2010 KeyPress + Timer

    Hallo!

    Folgendes Problem: Wenn man einen Timer hat, dann scheint dieser nicht zu funktionieren, wenn man eine Taste gedrückt hält. Also er "Triggert" nur dann, wenn ich keine Taste gedrückt halte. Wenn ich eine Taste gedrückt halte, überspringt er einfach Ereignisaufrufe und wenn ich dann loslasse, wartet er bis zum nächsten Interval, bevor er das Ereignis wieder aufruft. Das ist schlecht wenn man sich darauf verlässt, dass der Timer z.B. jede Sekunde aktiviert wird.

    Kann man das Problem irgendwie umgehen?

  • #2
    Was für einen Timer? Den von Winforms? Der benutzt die Windows Nachrichtenwarteschlange wo auch die Key Messages durchgehen. Ich habs noch nie ausprobiert aber ich könnte mir vorstellen das es da gehäuft zu den genannten Problemen (zumindest Verzögerungen) kommt wenn da zuviele Message durchlaufen. Da du von sich darauf verlassen anspricht, verlassen kannst du dich eh nicht darauf das gibt Windows schon gar nicht her. Also nicht von garantiertem zeitgeneuern feuern ausgehen sonst bist du verlassen

    Du solltest eher System.Threading.Timer oder System.Timers.Timer verwenden. Je nachdem was dir eher liegt. ICh würde selbst zu letzterem tendieren. Aber Achtung beide Timer nutzen einen Thread für das asynchrone Ausführung des Events. Wenn du auf Winforms Elemente im Event zugreifen willst mußt du ans synchronisieren denken.

    Comment


    • #3
      Ja wollte eigentlich verhindern mit Threads zu arbeiten, deswegen hab ich den Timer von WinForms benutzt. Aber gibt wohl keinen Weg herum.

      Comment

      Working...
      X