Ejemplo n.º 1
0
 private void ThreadProc(CancellationTokenSource cts)
 {
     try
     {
         while (!cts.IsCancellationRequested)
         {
             if (!_sendQueue.IsEmpty && _stream != null)
             {
                 byte[] message;
                 if (_sendQueue.TryDequeue(out message))
                 {
                     TcpHelpers.SendMessageAsync(_stream, _sendBufferSize, message, exception =>
                     {
                         if (exception != null)
                         {
                             OnException?.Invoke(exception);
                         }
                         else
                         {
                             OnMessageSent?.Invoke();
                         }
                     }, cts).Wait();
                 }
             }
             System.Threading.Thread.Sleep(1);
         }
         cts?.Dispose();
     }
     catch (Exception e)
     {
         Log.e("MessageReader Thread Exception: {0}", e.Message);
     }
     _thread = null;
 }