コード例 #1
0
        public void TestDispatching()
        {
            string pipeName = "Vkm.TestPipe4";

            Test3.Counter = 0;
            IntercomMasterDispatcher <Test3, Test2> masterDispatcher = new IntercomMasterDispatcher <Test3, Test2>(pipeName, () => new Test3());

            var callback         = new Test2();
            var connectedClient1 = IntercomSlaveDispatcher <Test3, Test2> .CreateSlaveChannel(callback, pipeName);

            Assert.AreEqual(1, Test3.Counter);
            var connectedClient2 = IntercomSlaveDispatcher <Test3, Test2> .CreateSlaveChannel(callback, pipeName);

            Assert.AreEqual(2, Test3.Counter);

            Assert.AreEqual(0, connectedClient1.Execute(nameof(Test3.GetInstanceIndex)));
            Assert.AreEqual(1, connectedClient2.Execute(nameof(Test3.GetInstanceIndex)));

            connectedClient1.Dispose();
            Thread.Sleep(500);
            Assert.AreEqual(1, Test3.Counter);

            masterDispatcher.Dispose();
            Assert.AreEqual(0, Test3.Counter);
        }
コード例 #2
0
        public void TestOneWay()
        {
            string pipeName = "Vkm.TestPipe5";

            IntercomMasterDispatcher <Test4, Test2> masterDispatcher = new IntercomMasterDispatcher <Test4, Test2>(pipeName, () => new Test4());

            var callback        = new Test2();
            var connectedClient = IntercomSlaveDispatcher <Test4, Test2> .CreateSlaveChannel(callback, pipeName);

            Assert.AreEqual(false, Test4.Success);
            connectedClient.Execute(nameof(Test4.LongMethod));
            Assert.AreEqual(false, Test4.Success);
            Thread.Sleep(1100);
            Assert.AreEqual(true, Test4.Success);
        }
コード例 #3
0
 public void Init()
 {
     _intercomDispatcher = new IntercomMasterDispatcher <IVkmRemoteService, IVkmRemoteCallback>(Constants.DispatcherName, () => new InteropService(_globalContext));
 }