public void Stop() { isThreadRunning = false; if (ThreadReading != null) { while (!ThreadReading.IsCompleted) { //wait } } Task.Delay(1000).Wait(); }