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);
        }
コード例 #2
0
        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();
                }
        }
コード例 #3
0
        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");
        }