通过进程间通信将停止参数从.NET应用程序传递给服务的最佳技术是啥?

Posted

技术标签:

【中文标题】通过进程间通信将停止参数从.NET应用程序传递给服务的最佳技术是啥?【英文标题】:What's the best technology for passing a stop argument to a service from a .NET-Application by Inter-process Communication?通过进程间通信将停止参数从.NET应用程序传递给服务的最佳技术是什么? 【发布时间】:2020-03-30 07:54:16 【问题描述】:

所以我计划在我的 .NET 应用程序的 GUI 上设置一个按钮来控制服务。我想在按下按钮时停止服务。我想通过在 VB.NET 应用程序和服务之间传递的参数来实现这一点。 据我所知,进程间通信有4种可用技术:

    .NET 远程处理 WCF 匿名管道 WCF 命名管道 内存映射文件

实现这些功能的最佳技术是什么? 由于这是我第一次使用 IPC,我提前感谢您提供深入的答案:)

【问题讨论】:

为什么这么复杂? docs.microsoft.com/en-us/dotnet/api/… 如果没有准确定义对您而言什么是“最佳”,我们无法回答关于 SO 的“最佳”问题。您还应该记住,在定义“最佳”之后,它可能会清楚地概述任何答案都是主观的,并且问题将作为题外话结束。 IPC的实现方式有很多种,甚至两个程序写入共享目录下的一个文件,每个程序读取该文件,都是IPC的一种形式。您的应用和服务是否始终位于同一台 PC 上? 这能回答你的问题吗? What is the best choice for .NET inter-process communication? 是的,它们始终位于同一台 PC 上。 【参考方案1】:

根据@MatSnow 在原始问题下的评论,服务控制器可能是解决此问题的最佳选择。

ServiceController Class Stop Method

【讨论】:

以上是关于通过进程间通信将停止参数从.NET应用程序传递给服务的最佳技术是啥?的主要内容,如果未能解决你的问题,请参考以下文章

如何将参数传递给进程

将 VB 函数回调作为参数传递给 .NET

通过 .NET 将参数传递给 XSLT 样式表

如何通过asp.net schtasks将参数传递给bat文件

如何从.net代码将表值参数传递给存储过程

C# dot net core 单实例应用程序将参数传递给第一个实例