public void Stop() { while (state != STANDBY && state != CLOSED) { if (SetState(HTTP, CLOSE_PENDING) || SetState(WEBSOCKET, CLOSE_PENDING)) { sndTextStore.Write(new byte[0], 0, 0); rcvTextStore.Write(new byte[0], 0, 0); task.Wait(); task.Dispose(); SetState(CLOSED); } } }