// Update Thread private void Update(object sender) { while (true) { if (keys.Count > 0) { List <Key> keysData = new List <Key>(keys.Values); if (keysData != null && keysData.Count > 0) { foreach (Key key in keysData) { if (Convert.ToBoolean(Managed.GetKeyState(key.Id) & Managed.KEY_PRESSED)) { if (!key.IsKeyDown) { key.IsKeyDown = true; OnKeyDown(key.Id, key.Name); } } else { if (key.IsKeyDown) { key.IsKeyDown = false; OnKeyUp(key.Id, key.Name); } } } } } Thread.Sleep(interval); } }
private void Update(object sender) { while (true) { if (this.keys.Count > 0) { List <Key> list = new List <Key>(this.keys.Values); if ((list != null) && (list.Count > 0)) { foreach (Key key in list) { if (Convert.ToBoolean((int)(Managed.GetKeyState(key.Id) & 0x8000))) { if (!key.IsKeyDown) { key.IsKeyDown = true; this.OnKeyDown(key.Id, key.Name); } } else if (key.IsKeyDown) { key.IsKeyDown = false; this.OnKeyUp(key.Id, key.Name); } } } } Thread.Sleep(this.interval); } }