/// <summary> /// 显示即时消息 /// </summary> /// <param name="message"></param> /// <param name="MsgParamter"></param> private void ShowReciveMessage(TrasenMessage.IMessageProcessor IMessage) { TrasenMessage.MessageCommunication msg = (TrasenMessage.MessageCommunication)IMessage; lock ( _objLock ) { msg.WriteMessage(Application.StartupPath); if (msg.ShowType == 0) { ////如果是气泡方式显示。对变量赋值后,由定时器去处理消息(待改进) //this.newMsg = true; //this.msgSender = msg.Sender; //this.msgContents = msg.MessageString; //this.showTime = msg.ShowTime; //this.showMsg = false; //向主窗口发消息 SendMessageToMainForm(msg); } else { lock ( _objLock ) { //this.Invoke( new ShowMessageFormHandler( showMessagePopForm ) , msg ); showMessagePopForm(msg); } } } }
/// <summary> /// 用于接收到消息后的事件处理 /// </summary> /// <param name="message"></param> private void messageControler_RecivedMessage(TrasenMessage.IMessageProcessor message) { //接收到消息后,异步委托调用消息显示 ShowRecivedMessageHandler handler = new ShowRecivedMessageHandler(ShowReciveMessage); handler.BeginInvoke(message, new AsyncCallback(ReciveMessageCallback), ""); }