C# 如何在Event中收到消息,通知给窗体,或者另一个Thread

wade008 2014-07-22 05:35:52
private UnReader Reader;
private UnReader.CardReadHandler CardHandler;
private void OnCardReadEvent(string card)
{
MessageBox.Show(card, "Message");
   //这边要怎么实现,通知窗体或者另一个Thread

}



主程序,调用别人的DLL,别人的DLL以Event方式通知。(别人的DLL应该是一个线程,有消息就用Event方式通知)

现在主程序收到Event时,想通知窗体更新数据或者通知另一个Thread处理数据
...全文
334 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wade008 2014-07-23
  • 打赏
  • 举报
回复
引用 5 楼 caozhy 的回复:
要看你的代码逻辑。事件本身就是支持挂接多个函数的。
知道原因了,是DLL里的事件是要Open RS232后,才Start Thread, 有数据才用Event通知 谢谢!
threenewbee 2014-07-23
  • 打赏
  • 举报
回复
要看你的代码逻辑。事件本身就是支持挂接多个函数的。
wade008 2014-07-23
  • 打赏
  • 举报
回复
引用 3 楼 caozhy 的回复:
直接让那个窗体或者线程去挂接事件处理函数即可。
但是如果有两个窗体,都挂事件这样不会有问题?
threenewbee 2014-07-22
  • 打赏
  • 举报
回复
直接让那个窗体或者线程去挂接事件处理函数即可。
sunny906 2014-07-22
  • 打赏
  • 举报
回复
用事件

//窗体A
FormB b =new FormB();
b.ReceiveData += ReceiveData;
private void ReceiveData(string card)
{
   MessageBox.Show(card);
}

//窗体B
public  void delegate ReceiveDataHandler(string card);
public ReceiveDataHandler ReceiveData;

 private void OnCardReadEvent(string card)
 {
           MessageBox.Show(card, "Message");
   //这边要怎么实现,通知窗体或者另一个Thread
            if(ReceiveData!=null)
            {
                    ReceiveData(card);
            }
}

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧