示例#1
0
 /// <summary>
 /// Safely sends a message and prevents multiple simultaneous
 /// write operations on the <see cref="_stream"/>.
 /// </summary>
 /// <param name="message">The message to send.</param>
 private void SafeSendMessage(IMessage message)
 {
     try
     {
         _singleWriteMutex.WaitOne();
         using (PayloadWriter pw = new PayloadWriter(_stream, true))
         {
             OnClientWrite(message, pw.WriteMessage(message));
         }
     }
     catch (Exception)
     {
         Disconnect();
         SendCleanup(true);
     }
     finally
     {
         _singleWriteMutex.ReleaseMutex();
     }
 }