Wenn dieser Code bei einem Event-Handler-Methode aufgerufen wird, können Sie:
1) Deaktivieren Sie die Methode Event-Handler auf ein und reaktivieren Sie an der Ausfahrt
myCtrl.KeyPress -= new KeyPressEventHandler(myHandler);
PressCom(key);
myCtrl.KeyPress += new KeyPressEventHandler(myHandler);
2) oder einfach eine statische globale erklären bilden variabel und in Ihrem KeyPress-Ereignis
private static _onKeyPress = false;
if(_onKeyPress == false)
{
_onKeyPress = true;
PressCom(key);
_onKeyPress = false;
}
in jedem Fall ist es notwendig, hinzuzufügen, zu dem Pseudo-Code hier vorgestellten einen angemessenen Umgang mit Fehlerbedingungen. Andernfalls könnten Sie in einem Zustand enden, in dem kein Ereignishandler mit Ihrem Tastendruck verdrahtet ist oder eine globale Variable auf "true" gesetzt ist und keiner sie auf "false" zurücksetzen kann.
System.Threading.Thread.Sleep (2000); nicht tun was du brauchst? – JMK
'Sleep' verzögert nur die Eingabe, ignoriert die Eingabe des Benutzers nicht ... – hakunabean