【发布时间】:2012-11-24 10:10:57
【问题描述】:
全部。首先,我知道Send data back to .exe from dll 的问题,但是那里的答案给我留下了太多的开放式结局,因为我对我正在尝试的东西没有经验,所以我觉得有必要提出一个新问题。
我有一个严重依赖 SQL 的现有 C# [All WinForms] 应用程序。 (客户)要求我们提供一个 SQL 编辑器和库,可用于开发和测试 SQL,但也可用于直接粘贴回主应用程序。新的 SQLEditor 是一个解析和执行 TSQL 的多线程应用程序。我现在有一些事情要考虑;从主应用程序启动第二个应用程序的最佳方式是什么::
将第二个应用程序制作成 DLL 并加载到主项目中,将第二个应用程序作为新表单调用(
SqlEditor sqlEd = new SqlEditor()等)?线程轰炸的含义是什么,我需要[STAThread]- 因为我希望两个多线程应用程序同时可用和活动。要作为独立于主应用程序的 .exe 启动?
取决于您的建议;在上述任何一种情况下 - 我可以将信息从第二个应用程序中的点击事件传递回主应用程序的最佳方式是什么,而它们仍然在运行和处于活动状态 [WCF,ApplicationDomains 等]? Observer design pattern会进来玩吗?
为了让这个问题更有吸引力,这里是 SQL 编辑器:
我打算有一个按钮,将选定的 SQL 粘贴回主应用程序。
我也知道这里有多个问题 - 对此我深表歉意。非常感谢您的宝贵时间。
【问题讨论】:
-
@slugster 感谢您的编辑。万事如意...
-
没有问题,这是一个很小的编辑。查看named pipes,看看是否符合您的需求。这不是一种解耦的方法,但它非常灵活。
-
namedpipes 方法(对我而言)看起来是解决此问题的更好方法,而不是 WindowsMessages 和 Interop。但是,从我目前所读的内容来看 - 当您不知道何时发送数据时,我看不到读取发送数据的清晰方法。显然没有要听的事件——你能在这方面提供和建议吗?再次感谢...
标签: c# winforms dll communication