예제 #1
0
        static void Main(string[] args)
        {
            Console.CancelKeyPress += (sender, _) => Environment.Exit(0);

            var mainIpcId       = new Guid(args[0]);
            var ownIpcId        = new Guid(args[1]);
            var parentProcessId = Int32.Parse(args[2]);

            TerminateOnParentExit(parentProcessId);

            var ipcClient = new NamedPipesClient(ownIpcId, mainIpcId);
            var random    = new Random();

            ipcClient.Received <RandomNextRequest>()
            .Subscribe(async req =>
            {
                Console.WriteLine($"[{DateTime.Now}] Request received.");

                var value    = random.Next();
                var response = new RandomNextResponse(req.Id, value);
                await ipcClient.SendAsync(response).ConfigureAwait(false);
            });

            Console.ReadLine();
        }
        private ChildProcess SpawnNewProcess()
        {
            var ipcClient    = new NamedPipesClient();
            var childProcess = new ChildProcess(ipcClient);

            childProcess.Start();

            return(childProcess);
        }
예제 #3
0
        private ChildProcess SpawnNewProcess()
        {
            var ipcClient            = new NamedPipesClient();
            var requestResponseClent = new NamedPipesRequestResponseClient(ipcClient);
            var childProcess         = new ChildProcess(requestResponseClent);

            childProcess.Start();

            return(childProcess);
        }
예제 #4
0
        static void Main(string[] args)
        {
            Console.CancelKeyPress += (sender, _) => Environment.Exit(0);

            var mainIpcId       = new Guid(args[0]);
            var ownIpcId        = new Guid(args[1]);
            var parentProcessId = Int32.Parse(args[2]);

            TerminateOnParentExit(parentProcessId);

            var ipcClient = new NamedPipesClient(ownIpcId, mainIpcId);
            var random    = new Random();
            var server    = new MyNativeLibServer(ipcClient, random);

            server.Start();

            Console.ReadLine();
        }
예제 #5
0
 public ChildProcess(NamedPipesClient ipcClient)
 {
     _ipcClient = ipcClient;
     _process   = CreateProcess();
 }