void ThreadLoop() { while (!_threadToWatch.Join(1000)) { if (!IsValidAndRunning(_threadToWatch)) break; } if (_onEnd != null) _onEnd(); } }