2012-07-17 118 views
0

我的程序包含多个线程,我想用一个ManualResetEvent对象来控制。当我创建一个新的对象时(例如,新的ManualResetEvent MRE = new ManualResetEvent(args);),我希望MRE可以被所有类访问,但是它不断地作为参数传递它是很麻烦的。我会让它变得更好吗?还是有更有效的方法呢? - 谢谢在类之间传递ManualResetEvent对象

+1

将其推送到另一个具有manualresetevent的单例类。 Yep ManualResetEvent仍然是单例内的实例对象。这种方式可以在任何地方使用它。但请记住,静态对象的生命周期仍然是AppDomain的终结。 – Zenwalker 2012-07-17 03:04:18

+0

@zenwalker考虑到你对静态变量生命周期的最终陈述,有没有其他方法可以考虑我的程序是在后台连续运行? – Ari 2012-07-17 03:08:58

+0

@jay,这听起来像我们可以更好地回答这个问题,举个例子,你正在使用MRE。您当然可以创建一个“全局静态”MRE,但机会太粗糙,可能违反了使用它的类的一些设计最佳实践。 – 2012-07-17 03:17:11

回答

0

隐藏依赖是一种错误的做法。如果你所有的类都需要一个ManualResetEvent的同一个实例,将它作为一个依赖项添加并不麻烦,那么它就是预期的接口。

对象的构造函数必须显示它所依赖的对象的依赖关系。