我有一个在Matlab语言中实现的算法,我计划将它作为一个动态链接库部署,以便与.NET项目集成。.NET项目是一个基于图形用户界面的应用程序,其中一小部分包括显示从运行算法获得的结果。我目前遇到的问题是,我需要显示中间结果。该算法相当复杂,需要进行多次迭代(由用户选择),并且在每次迭代结束时,应使用当前数据更新GUI。
目前我想到的最好的解决方案是让Matlab线程充当本地tcp服务器的tcp客户端,我将在C#图形用户界面应用程序中启动该服务器。然而,我觉得这种方法效率很低。我想知道是否可以通过其他方式实现这一点。
发布于 2012-01-11 15:23:50
首先,从你的问题来判断,我猜你知道Matlab builder NE。它允许您部署.NET动态链接库。如果你不知道,那就试试吧。
关于你的选择:
1)您可以将一个.NET对象传递给您的Matlab代码,它将用作一种通信方式。创建此类的新实例,并将其作为输入发送到您的Matlab代码。Matlab代码将在每次迭代时调用UpdateGui逻辑。以下是C#中的示例
class GuiUpdater{
public void UpdateGui(int param1,int param2){
//Do update logic here.
}
} 2)将您的DLL编译为COM (在Matlab Builder NE中也是可能的),并使用COM通信。
3)使用文件系统作为通信手段。在Matlab中写入一个文件,然后在.NET中读取它。
https://stackoverflow.com/questions/8813407
复制相似问题