/// <summary> /// 功能描述:发送消息到指定进程ID /// 作 者:huangzh /// 创建日期:2015-08-28 16:11:41 /// 任务编号: /// </summary> /// <param name="value">非接口调用,传null</param> /// <param name="strProcessID">进程ID</param> /// <param name="objMsg">objMsg</param> public static void SendMsgToProcess <T>( this T value, string strProcessID, object objMsg) where T : IProcessMessage { try { ProcessMailBox mail = new ProcessMailBox(strProcessID, 1024, false); mail.Content = objMsg; //给读取消息留时间 Thread.Sleep(10); //清空消息 mail.ClearContent(); mail.Dispose(); } catch { throw; } }
/// <summary> /// 功能描述:从指定进程读取消息 /// 作 者:huangzh /// 创建日期:2015-08-28 16:11:59 /// 任务编号: /// </summary> /// <param name="value">非接口调用,传null</param> /// <param name="strMsgFrom">strToolProcessName</param> public static void ReadMsgFromProcess <T>(this T value, string strMsgFrom) where T : IProcessMessage { try { if (OnMsg == null) { throw new Exception("请初始化OnMsg事件"); } Thread th = new Thread(delegate() { ProcessMailBox mail = new ProcessMailBox(strMsgFrom, 1024, false); try { while (true) { if (OnMsg != null) { OnMsg(mail.Content, strMsgFrom); //防止一直读取同一消息 Thread.Sleep(20); } } } catch { } finally { mail.Dispose(); } }); th.Name = "读取夸进程消息"; th.IsBackground = true; th.Start(); } catch { throw; } }