【问题标题】:Why AutoResetEvent and ManualResetEvent does not support name in the constructor?为什么 AutoResetEvent 和 ManualResetEvent 不支持在构造函数中命名?
【发布时间】:2010-05-12 07:28:13
【问题描述】:
在 .NET Framework 2.0 上,AutoResetEvent 和 ManualResetEvent 继承自 EventWaitHandle。 EventWaitHandle 类有 4 个不同的构造函数。 3 个构造函数支持为事件命名。另一方面,ManualResetEvent 和 AutoResetEvent 都不支持命名,并提供一个接收初始状态的构造函数。我可以简单地从 EventWaitHandle 继承并编写我自己的那些支持所有构造函数重载的类的实现,但如果我不需要的话,我不喜欢重新发明轮子。我的问题是:
- 事件命名有什么特殊问题吗?
- 你知道微软为什么不支持它吗?
- 您有比从 EventWaitHandle 类继承并调用适当的构造函数(如下例所示)更好的建议吗?
公共类 MyAutoResetEvent:EventWaitHandle
{
公共 MyAutoResetEvent(布尔初始状态)
:基础(初始状态,EventResetMode.AutoReset)
{
}
公共 MyAutoResetEvent(布尔初始状态,字符串名称)
:基础(初始状态,EventResetMode.AutoReset,名称)
{
}
public MyAutoResetEvent(bool initialState, string name, out bool createdNew)
: base(initialState, EventResetMode.AutoReset, name, out createdNew)
{
}
public MyAutoResetEvent(bool initialState, string name, out bool createdNew, EventWaitHandleSecurity eventSecurity)
:基础(initialState,EventResetMode.AutoReset,string.Empty,out createdNew,eventSecurity)
{
}
}
【问题讨论】:
标签:
multithreading
.net-2.0
synchronization