【发布时间】:2013-07-16 05:51:20
【问题描述】:
这是一个关于编程技术的问题。思路是这样的:
-
control A触发事件(正常) -
control A监听(其他线程/控件的)事件
我想实现第二个。但是以一种安全且最模块化的方式。所以控件必须不知道谁在触发事件,只有它被触发了。我认为有很多方法可以做到这一点。哪一个是最好的 ?假设一个表单正在触发事件 LoadImages 并想要监听事件 ImagesLoaded。
- 线程/控件调用
control A的函数并以这种方式通知它它们已完成(但他们知道control A及其方法) -
control A订阅线程/控件的事件并知道它们何时被触发(知道一切的主线程必须通过事件订阅连接它们) -
control A启动一个等待线程,该线程调用一个阻塞函数,并在函数完成时触发ImagesLoaded事件(control A知道执行某些工作的线程/控件) -
control A调用函数或触发事件,同时将callback函数作为参数传递(除了他们必须做的事情之外,没有人知道任何事情) - ... ?
哪一个给了我最大的模块化?还有更多的方法来实现 2 吗?
【问题讨论】:
标签: c# multithreading events notifications controls