C#-从不同的DLL';s

C#-从不同的DLL';s,c#,C#,我有一个GUI,它背后有一个接口,允许那些dll满足它的契约,通过这个GUI运行。所有的工作和计算都在每个dll中完成 我想在处理每个记录(dll内)时显示更新,此更新必须在GUI上 有没有一种简单的方法从dll传递这些信息,因为实际上他们不知道GUI上有什么控件 谢谢。您可以使用回调函数,使dll库在发生更改时通知GUI 例如,您可以有这样一个委托 delegate void NotifyChange(string action,string whatHasChanged); 然后,您可以更

我有一个GUI,它背后有一个接口,允许那些dll满足它的契约,通过这个GUI运行。所有的工作和计算都在每个dll中完成

我想在处理每个记录(dll内)时显示更新,此更新必须在GUI上

有没有一种简单的方法从dll传递这些信息,因为实际上他们不知道GUI上有什么控件


谢谢。

您可以使用回调函数,使dll库在发生更改时通知GUI

例如,您可以有这样一个委托

delegate void NotifyChange(string action,string whatHasChanged);
然后,您可以更改库中接受委托的方法:

void Porcess(....,NotifyChange notifyChange)
{
...

}
然后,您可以随时在dll中调用回调函数,以通知某些内容已更改:

...
if(notifyChange!=null)
notifyChange(thisAction,whatHappened);
...

您可以在GUI中为该委托提供一个实现,以将其传递给您的方法。您可以使用接口来代替委托

谢谢,我想这需要在dll的公共接口部分?因为我的GUI除了公共接口/契约之外什么都不知道?这个委托或接口应该是您的库和GUI组件都可以访问它的地方。它可以是公共库的公共成员