private void ReadWorker() { while (_running) { try { var messages = CommunicationHub.Net.Hub.Get(); foreach (var message in messages) { try { OnMessage?.Invoke(this, CompressUtils.DeflateDecompress(message).ToArray()); } catch (Exception e) { Logger.LogError($"Error occured: {e}"); } } if (messages.Length == 0) { Thread.Sleep(TimeSpan.FromMilliseconds(100)); } } catch (Exception e) { Logger.LogError($"Error occured: {e}"); } } }
public void Test_CompressDecompress() { var data = Enumerable.Range(0, 10000).SelectMany(_ => "0xdeadbeef".HexToBytes()).ToArray(); Console.WriteLine($"{data.Length}: {data.ToHex()}"); var c = CompressUtils.DeflateCompress(data).ToArray(); Console.WriteLine($"{c.Length}: {c.ToHex()}"); var restored = CompressUtils.DeflateDecompress(c).ToArray(); Console.WriteLine($"{restored.ToHex()}"); Assert.AreEqual(data, restored); }