Пример #1
0
 /// <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;
     }
 }
Пример #2
0
 /// <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;
     }
 }