public void Stop() { if (overlayPipe != null && isConnected) { overlayPipe.Close(); } if (overlayHookThread != null) { overlayHookThread.Abort(); Stopwatch terminateCountdown = new Stopwatch(); terminateCountdown.Start(); while (overlayHookThread.IsAlive) { if (terminateCountdown.ElapsedMilliseconds > 2000) { API.Instance.Log("Overlay hook thread unable to be terminated, 2000ms timeout exceeded; Giving up"); break; } } } if (bitmap != null) { bitmap.Close(); bitmap = null; } }
public OverlayHook() { buffer = new OverlayMsgBuffer(); bitmap = new SharedOverlayBitmap(); stopwatch = new Stopwatch(); isConnected = false; }