如何在托管 c++ 2010 中向事件添加委托?

Posted

技术标签:

【中文标题】如何在托管 c++ 2010 中向事件添加委托?【英文标题】:How do I add a delegate to event in managed c++ 2010? 【发布时间】:2012-01-27 21:38:37 【问题描述】:

我在 c# 中有以下代码

public class Shedluer

    public delegate void TaskCompletedDelegate(ulong taskId);
    public static event TaskCompletedDelegate OnTaskCompleted;

这是我尝试在 c++.net 中使用它的方式:

shedluer->OnTaskCompleted+=gcnew Shedluer::TaskCompletedDelegate(OnTaskFinished);

其中 OnTaskFinished 是在 ref 类中声明的非静态方法。

我看过一堆 c++.net 2007 的示例,但这些示例无法在 vs 2010 中编译。

【问题讨论】:

Shedluer?那应该是“调度程序”吗? 【参考方案1】:

假设OnTaskFinished 在当前类中,并且该引用类是MyClass 类型。在这种情况下,你会写:

shedluer->OnTaskCompleted += gcnew Shedluer::TaskCompletedDelegate(this, &MyClass::OnTaskFinished);

【讨论】:

以上是关于如何在托管 c++ 2010 中向事件添加委托?的主要内容,如果未能解决你的问题,请参考以下文章

如何在非托管 C++ 中捕获托管异常(来自委托)?

我想从 C++ 非托管代码调用 C# 委托。无参数委托工作正常,但有参数委托使我的程序崩溃

如何在 JavaScript 中向 DOM 元素添加类?

如何在 C++ 中向向量中添加新对象

如何在 iOS 中向 WWDC 2010 Teapot 示例代码添加距离注意事项?

如何在 C++ 中向 MFC 项目添加另一个 gui