在MFC中创建用于WaitForSingle/MultipleObject的C#句柄

在MFC中创建用于WaitForSingle/MultipleObject的C#句柄,c#,mfc,pinvoke,C#,Mfc,Pinvoke,我有一个MFC/C++API,它利用句柄和WaitForSingleObject(或者可能是WaitForMultipleObject)。我想从C#前端调用这些函数,但我很难确定如何执行此操作 例如,在我的MFC示例应用程序中,我执行以下操作: request_handle = CreateEvent(NULL,TRUE,FALSE,NULL); WorkFunction(blah, request_handle); //signals the event when it's done x=Wa

我有一个MFC/C++API,它利用句柄和WaitForSingleObject(或者可能是WaitForMultipleObject)。我想从C#前端调用这些函数,但我很难确定如何执行此操作

例如,在我的MFC示例应用程序中,我执行以下操作:

request_handle = CreateEvent(NULL,TRUE,FALSE,NULL);
WorkFunction(blah, request_handle); //signals the event when it's done
x=WaitForSingleObject(request_handle,timeout);
switch(x)
{
    case WAIT_OBJECT_0:
    ...
    break;
    case WAIT_TIMEOUT:
    ...
    break;
}

具体来说,我的问题是如何创建请求#句柄并将其传递给MFC函数WorkFunction,然后在C#中等待事件

与CreateEvent()调用完全等效的是C#code中的
ManualResetEvent
。将其句柄属性传递给本机代码


与WaitForSingleObject()调用完全等效的是C#中的ManualResetEvent.WaitOne(int)。如果超时过期,则返回false。

与CreateEvent()调用完全等效的是C#code中的
ManualResetEvent
。将其句柄属性传递给本机代码


与WaitForSingleObject()调用完全等效的是C#中的ManualResetEvent.WaitOne(int)。如果超时过期,则返回false。

在C#中创建EventWaitHandle实例并将其句柄属性传递给非托管代码。在C#中创建EventWaitHandle实例并将其句柄属性传递给非托管代码。