public FastChannel(string name, bool isOwner, Module module) { _module = module; // Types belonging to this module will serialize faster DomainAddress = (byte)(isOwner ? 1 : 2); _outPipe = new OutPipe(name + (isOwner ? ".A" : ".B"), isOwner); _inPipe = new InPipe(name + (isOwner ? ".B" : ".A"), isOwner, OnMessageReceived); }
void Demo() { string pipeName = "test" + new Random().Next(); using (var inPipe = new InPipe(pipeName, true, Console.WriteLine)) using (var outPipe = new OutPipe(pipeName, false)) { outPipe.Write(new byte[] { 1, 2, 3 }); outPipe.Write(new byte[] { 1, 2, 3, 4, 5 }); Console.ReadLine(); } }
void StressTestSend(CancellationToken cancelToken) { //Console.WriteLine("Running..."); SHA1 hasher = SHA1.Create(); const int hashLength = 20; var random = new Random(); var start = Stopwatch.StartNew(); using (var outPipe = new OutPipe("test", false)) while (!cancelToken.IsCancellationRequested) { int bufferLength = 20 + random.Next(60); var buffer = new byte[bufferLength + hashLength]; random.NextBytes(buffer); var hash = hasher.ComputeHash(buffer, 0, bufferLength); Array.Copy(hash, 0, buffer, bufferLength, hashLength); outPipe.Write(buffer); } Console.WriteLine("Done"); }