在.NET Framework 2.0上,AutoResetEvent和ManualResetEvent继承自EventWaitHandle。EventWaitHandle类有4个不同的构造函数。3个构造器支持为事件命名。另一方面,ManualResetEvent和AutoResetEvent都不支持命名并提供一个接收initialState的构造函数。我可以简单地从EventWaitHandle继承并编写支持所有构造函数重载的类的自己的实现,但是如果不需要的话,我不喜欢重新发明轮子。我的问题是:
-
-
你知道微软为什么不支持它吗?
-
您有比从EventWaitHandle类继承并像下面的示例中那样调用适当的构造函数更好的建议吗?
public class MyAutoResetEvent: EventWaitHandle
{
public MyAutoResetEvent(bool initialState)
: base(initialState, EventResetMode.AutoReset)
{
}
public MyAutoResetEvent(bool initialState, string name)
: base(initialState, EventResetMode.AutoReset, name)
{
}
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)
: base(initialState, EventResetMode.AutoReset, string.Empty, out createdNew, eventSecurity)
{
}
}