public void Update(float deltaTime) { //pump message PumpMessage(); SenderEvent(new UpdateEvent(DateTime.Now, deltaTime)); SenderEvent(new RenderEvent(DateTime.Now, deltaTime)); //process the event while (EventCount != 0) { switch (GetEvent(true)) { case UpdateEvent update: OnUpdateEvent?.Invoke(this, update); break; case KeyBoardEvent keyBoard: OnKeyBoardEvent?.Invoke(this, keyBoard); break; case MouseClickEvent mouseClick: OnMouseClickEvent?.Invoke(this, mouseClick); break; case MouseWheelEvent mouseWheel: OnMouseWhellEvent?.Invoke(this, mouseWheel); break; case MouseMoveEvent mouseMove: OnMouseMoveEvent?.Invoke(this, mouseMove); break; case SizeChangeEvent sizeChange: OnSizeChangeEvent?.Invoke(this, sizeChange); break; } } }
//------------------------------------------------------------------------------ private static void PollClipboard() { while (true) { Thread.Sleep(1000); tb.Paste(); if (tb.Text != lastContent) { lastContent = tb.Text; if (OnKeyBoardEvent != null) { OnKeyBoardEvent.Invoke(tb.Text); } } tb.Clear(); if (exit) { break; } } }