在dotnet核心控制台应用程序和常规winforms应用程序之间进行通讯的最佳方式

时间:2019-06-10 08:58:04

标签: c# winforms .net-core console-application

所以我想有两个应用程序:第一个是WinForms GUI(可能是.NET Framework),第二个是执行所有处理的.NET Core控制台应用程序。

我的目标是让WinForms应用程序在需要时启动控制台应用程序,并提供控制台应用程序应完成的任务作为启动参数。然后,控制台应用程序应处理任务,并每秒钟左右将当前状态/进度报告给GUI,包括错误和警告。完成所有操作后,控制台应用程序应报告其已完成并关闭。

我认为我可以使用ProcessStartInfo启动控制台应用程序,该应用程序将重定向控制台应用程序的输出。控制台应用程序将每秒输出所有重要数据,然后WinForms应用程序将过滤并处理此输出以获取数据。

这对我来说似乎不是一种非常理想的方法,我希望我可以就可以尝试/应使用哪些方法来代替此解决方案获得一些反馈。我对两个应用程序之间的通信非常陌生。

1 个答案:

答案 0 :(得分:0)

  1. 我从来没有做过您要尝试做的事情,但我会通过这种方式查看C#套接字编程,以便您可以在两个应用之间建立通信,这些应用之间可以流畅地发送数据,但是这需要服务器/客户端设置,好消息是您应该能够通过启动过程然后建立连接来启动服务器。

https://docs.microsoft.com/en-us/dotnet/framework/network-programming/socket-code-examples

  1. 使用SOAP或Socket创建在后台运行的服务 https://www.guru99.com/soap-simple-object-access-protocol.html

  2. ASP.NET MVC API(最不推荐),但它将支持许多其他项目,并且可以在HTTP上运行

我不确定这是否可以立即解决您的问题,但希望它可以帮助您找到所需的答案。我建议您