private void StartWriting()
{
Task.Run(async () =>
{
var connectionId = ConnectionId;
try
{
var writer = new StreamWriter(ActiveConnection.GetStream())
{
AutoFlush = true
};
while (IsOnline && connectionId == ConnectionId)
{
while (!WriteQueue.IsEmpty)
{
string message;
if (!WriteQueue.TryDequeue(out message)) continue;
Logger.Debug($"<< {message}");
await writer.WriteLineAsync(message);
}
await Task.Delay(10);
}
}
catch (Exception exception)
{
Logger.Warn($"[WRITE] Disconnected. Reason: {exception.Message}");
OnTcpClientDisconnected(connectionId);
}
});
}