コード例 #1
0
        private void DoWork(IpcCommunication <WorkCommand, WorkResult> ipcCommunication)
        {
            var workItem = m_WorkCommands.Dequeue();

            try
            {
                var methodInfo = workItem.GetMethodInfo(m_HostedType);
                if (methodInfo == null)
                {
                    ipcCommunication.SendData(WorkResult.Create(workItem, new InvalidOperationException("methodInfo empty!")));
                    return;
                }

                var result = methodInfo.Execute(HostedObject, workItem.Parameter);
                ipcCommunication.SendData(WorkResult.Create(workItem, result));
            }
            catch (Exception exception)
            {
                ipcCommunication.SendData(WorkResult.Create(workItem, exception));
            }
        }