关于消息委托!

cimu 2007-09-05 03:49:52
我的外壳程序需要和 子窗口通信, 定义了消息委托, 测试通信正常,现在想增加一个功能, 不知道如何处理, 请大家帮忙

子窗口 发送消息给外壳后 需要等待 外壳回送处理结束的消息 才可以继续流程 , 请问在子窗口如何实现等待功能?
...全文
104 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
bigmingming 2007-09-05
  • 打赏
  • 举报
回复
PV操作
lhzyn 2007-09-05
  • 打赏
  • 举报
回复
你可以在外壳里多定义几个事件比如处理完成,处理失败,汇报处理进度什么的
子窗体分别订阅它们,根据不同的事件做不同的处理.
cimu 2007-09-05
  • 打赏
  • 举报
回复
juedaihuaihuai(绝代坏坏(beyond myself)) :
我是采用了第一种方法, 父窗口处理完后会给子窗口发消息,关键是, 我不知道如何在子窗口实现等待!
子窗口函数1 是业务逻辑处理 , 处理过程中会发消息给父窗口 , 父亲窗口处理完后会返回消息, 该消息会被子窗口的函数2 收到, 但是如何在函数1实现等待啊 ?
ztenv 2007-09-05
  • 打赏
  • 举报
回复
事件如果处理不完可以返回吗?我感觉事件一定要处理完了才可以返回的,可能是我理解错误,刚刚学C#,望大侠指教如果有不对之处
绝代坏坏 2007-09-05
  • 打赏
  • 举报
回复
两种方法,一种是在父窗口也做一个委托事件,父窗口处理完成后调用事件 另一种方法做多线程,隔一段时间去父窗口去一下状态。
lhzyn 2007-09-05
  • 打赏
  • 举报
回复
如果子窗口在等待过程中,你想让用户有所动作,可以直接 this.Enabled = false;
然后在订阅外壳处理完成的消息代码中 this.Enabled = true;
如果订阅处理完成消息的代码段不在子窗体的主线程中执行的话,你需要用委托去重新激活子窗体
cimu 2007-09-05
  • 打赏
  • 举报
回复
使用信号量吗? 因为子窗口发消息后会等待, 怎么等待? 记得以前VC中有 线程信号量 的概念!C#如何等待啊? 不会写个死循环等待吧
zhchg6666 2007-09-05
  • 打赏
  • 举报
回复
这是生产者和消费者的关系
可以做一个临界变量用于控制
临界变量由外壳程序控制
由子窗体试用

可以找线程同步的资料

110,536

社区成员

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

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

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