public void Dispose() { //Buffered data. while (WorkerProcess.IsBusy) { WorkerProcess.CancelAsync(); } Socket.CloseAsync(WebSocketCloseStatus.NormalClosure, "", System.Threading.CancellationToken.None); BufferedData = null; Socket.Dispose(); //Client //Background worker. }