Frage

Meine C# -Anwendung hat einen Timer, der alle 100 Millisekunden ein Ereignis auslöst. In diesem Ereignis gibt es einen Empfangshandler für den Busverkehr, der ununterbrochen abschließt, bis der Empfangspuffer leer ist, oder weitere 100 Millisekunden verstrichen. Dies funktioniert gut, bis ich versuche, eine der anderen Steuerelemente in meiner Anwendung zur Laufzeit zu verwenden. Dann friert die Anwendung ein. Hat jemand irgendwelche Ideen, wie ich meine Bewerbung partitionieren kann (oder sie anderweitig ändern kann), damit das Hintergrundereignis (mit dem Timer gebunden) weiter ausgeführt und die Anwendung nicht zum Stillstand kommen kann? Ich verwende Microsoft Visual C# 2008 Express Edition. Vielen Dank.

War es hilfreich?

Lösung

Sie müssen a verwenden Hintergrundbearbeiter (oder ein äquivalentes Konstrukt) für den Empfangshandler. Auf diese Weise wird es in einem anderen Thread ausgeführt und das Formular kann rechtzeitig reagieren, und Sie benötigen keinen Timer in der Schleife.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top