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); }
private ChildProcess SpawnNewProcess() { var ipcClient = new NamedPipesClient(); var requestResponseClent = new NamedPipesRequestResponseClient(ipcClient); var childProcess = new ChildProcess(requestResponseClent); childProcess.Start(); return(childProcess); }
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(); }
public ChildProcess(NamedPipesClient ipcClient) { _ipcClient = ipcClient; _process = CreateProcess(); }