private void QueueSend() { //Update sending flag Interlocked.Exchange(ref sending, 1); //Start sending on the task pool Task sendTask = new Task(Send); sendTask.ContinueWith((t) => t.Dispose()); sendTask.Start(); }