当前位置:  开发笔记 > 编程语言 > 正文

来自DLL的C#回调

如何解决《来自DLL的C#回调》经验,为你挑选了2个好方法。

我正在C#.NET中编写应用程序A和DLL B. 我该怎么做:

    A中的呼叫功能

    希望B使用委托/回调来更新A的UI中的状态

不是关于BackgroundWorker ...那部分在A中工作正常.我看不到的是如何让B知道在A中调用什么函数.



1> Jeromy Irvin..:

要扩展Rob Prouse的答案,您需要声明一个委托,然后将匹配方法传递给它.

在B:

public delegate void CallbackDelegate(string status);

public void DoWork(string param, CallbackDelegate callback)
{
    callback("status");
}

在一个:

public void MyCallback(string status)
{
    // Update your UI.
}

当你调用方法时:

B.DoWork("my params", MyCallback);



2> Rob Prouse..:

你有两个选择.最常见的是在B中有一个事件,并在A中使用您的UI订阅该事件.然后B发射那个事件.

第二个选项是将A中的委托作为参数传递给B中的方法调用.然后B可以调用该委托.

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有