在我的 c# 应用程序中,我有一个进度条。C# 应用程序正在调用处理许多文件的 c++/cli dll。由于每个文件都在 dll 中处理,我想跟踪它在 c# 应用程序中的进度。为此,我需要在 c++/cli 中引发一个事件并在 C# 中使用它。从 MSDN 我收集到我在我的 c++/cli 类中需要以下内容:
delegate void Del(int);
event Del^ E;
void fire(int i) {
E(i);
}
在 MSDN 中,事件的接收者位于同一个 c++/cli 项目中,并显示了如何引发事件。在我的项目中,c# 应用程序将在处理每个文件后接收应在 c++/cli 中引发的事件。我也用谷歌搜索了很多,但还没有弄清楚。所以,我的问题是,如何在 c++/cli 中引发此事件,以及如何将我的 c# 程序连接到它?一些显示方法的代码将不胜感激。谢谢!
马特,感谢您的回复。在 C# 中,我正在尝试
MW.Class1 oM = new MW.Class1();
oM.fire += ProgressBarChanged(int i);
它不会编译说不能分配,因为 fire 是一个方法组。我的 C# 程序中也有处理程序
public void ProgressBarChanged(int i )
{
}
尽管编译器说 int 不是预期的并且不会编译,但这会更好
oM.fire += new EventHandler(ProgressBarChanged(int i));