创建从C#

问题描述:

Win32的事件,我想创建一个从C#内核(又名命名事件)。创建从C#

我一定要互操作的服务和包裹本地CreateEvent函数或者是已经存在的.NET类,没有工作?

我需要运行的函数应该是这样的: hEvent = CreateEvent(NULL,false,false,“MyCSHARPEvent”);

这应该通知探测forMyCSHARPEvent有关该事件的所有特效。

如果有需要包装的功能,我将如何转换从C#中的SECURITY_ATTRIBUTES结构支持WIN32?

看看在EventWaitHandle类。它从.Net 2.0开始支持,并允许创建命名事件。它还支持设置事件安全性,具体取决于您使用的构造函数。

如果你仍然想互操作使用,你可以这样定义函数:

[DllImport("kernel32.dll")] 
static extern IntPtr CreateEvent(IntPtr lpEventAttributes, bool bManualReset, bool bInitialState, string lpName); 

像这样的结构(您可能必须与包属性烂摊子,使其适合):

[StructLayout(LayoutKind.Sequential)] 
struct SECURITY_ATTRIBUTES{ 
    public int length; 
    public IntPtr securityDesc; 
    public bool inherit; 
} 

另外,这里是把他们放在一起的code example

+0

但是,你为什么? – ctacke 2009-01-15 17:04:12