我有一个非常大的函数在我的C++ DLL中执行很多任务。我们从c#wrapper调用它,并且需要大约20秒才能完成C++函数。 我想改变我们运行它的方式。 我的想法是 1.调用C++函数async和 2.每次完成一个带有C++函数的任务时,我想发送“task1 completed”消息给C#函数并显示给用户,以便他们知道后台发生了什么。从C++中的函数发送状态更新到C#
任何想法如何执行此?我查了几个例子,但感到困惑。我想知道是否有人这样做。寻找一些指针。
EX:C++代码
int CppLibrary::ExecuteWorkflow(param1,param2, param3,param4,param5)
{
task1;
task2;
task3;
task4;
task5;
}
calling the C++ function from C# wrapper:
[DllImport(_dllLocation)]
public static extern int ExecuteWorkflow(param1,param2, param3,param4,param5);
谢谢,但你能详细说明一下吗?你建议我在我的c#wrapper中使用委托。但我在哪里使用invoke或begininvoke?我想从我的C++函数发送状态消息到c#wrapper。那么我如何从C++发送它,以及如何捕获C#中的消息?请理解我之前从未使用C++或事件代表。谢谢。 – user1612555