void OnPacketReceived(object sender, PacketReceivedEventArgs e) { Program.Log("OnPacketReceived"); if (e.Packet.Length != 0) { try { WorkerProcess.MethodCall mc = (WorkerProcess.MethodCall)WorkerProcess.DeserializeObject(e.Packet); mc.CallOn(workerObject); } catch (TargetInvocationException ex) { Program.Log(ex.ToString()); CallMethodOnHost("ReportException", ex.InnerException.ToString()); } catch (Exception ex) { Program.Log(ex.ToString()); CallMethodOnHost("ReportException", ex.ToString()); } } }
public void CallMethodOnHost(string methodName, params object[] args) { Program.Log("CallMethodOnHost: " + methodName); sender.Send(WorkerProcess.SerializeObject(new WorkerProcess.MethodCall(methodName, args))); }
internal void Start() { process = new WorkerProcess(this); process.Ready += OnReady; process.WorkerLost += OnWorkerLost; process.Start(Program.CreateStartInfo()); }