void Update() { if ((DateTime.UtcNow - lastSend) > TimeSpan.FromSeconds(2.0)) { IMessage message = CreateBasicMessage(); context.Dispatcher.Send(message); lastSend = DateTime.UtcNow; } proxy.ForwardRemoteMessages(); context.Dispatcher.DispatchMessages(); proxy.SendToRemote(); Debug.Log("Update"); }
private static void SameProcessRemoteCommunicatorTest() { IContext contextA = CreateContext("ContextA"); IContext contextB = CreateContext("ContextB"); SameProcessRemoteCommunicator communicatorA = new SameProcessRemoteCommunicator(); SameProcessRemoteCommunicator communicatorB = new SameProcessRemoteCommunicator(communicatorA); RemoteDispatcherProxy proxyA = CreateRemoteDispatcher(contextA, communicatorA); RemoteDispatcherProxy proxyB = CreateRemoteDispatcher(contextB, communicatorB); PayloadA plA = new PayloadA(); PayloadB plB = new PayloadB(); var message = contextA.MessageComposer.Compose(plA, plB); contextA.Dispatcher.Send(message); contextA.Dispatcher.DispatchMessages(); proxyB.ForwardRemoteMessages(); contextB.Dispatcher.DispatchMessages(); }
private static void MemoryMappedTest(string[] args) { bool isClient = args.Length > 0 && args[0] == "client"; bool isHost = !isClient; string contextName = "Context" + (isClient ? ".Client" : ".Host"); IContext context = CreateContext(contextName); DotNetThreadStarter threadStarter = new DotNetThreadStarter(); MemoryMappedCommunicator communicator = new MemoryMappedCommunicator(threadStarter, "Tgrc.Messages.MemoryMap", isHost); RemoteDispatcherProxy proxy = CreateRemoteDispatcher(context, communicator); communicator.StartThreads(); DateTime lastSend = DateTime.UtcNow; while (true) { if ((DateTime.UtcNow - lastSend) > TimeSpan.FromSeconds(1.5)) { for (int i = 0; i < 500; i++) { IMessage message = CreateBasicMessage(context); context.Dispatcher.Send(message); } lastSend = DateTime.UtcNow; } context.Dispatcher.DispatchMessages(); proxy.SendToRemote(); proxy.ForwardRemoteMessages(); } }