控制通过服务运行的应用程序的实例数

本文关键字:应用程序 实例 运行 服务 控制 | 更新日期: 2023-09-27 18:31:41

我有一个Windows服务,它监视正在创建的新文件的文件夹。放入文件后,服务将启动另一个应用,将此文件路径作为参数发送。

我正在寻找一种方法来控制Windows服务可以生成的第二个应用程序的实例数,例如,如果有一种方法可以设置仅应生成第二个应用程序的5个实例。

我尝试在第二个应用程序中使用值为 1 的信号量,但这会使第二个应用程序在删除多个文件时一次执行一个文件,但 Windows 服务启动实例数作为热文件夹中的文件数。我不想打扰第二个应用程序,并希望从中删除信号量。

Windows 服务和第二个应用程序都是 .NET 应用程序。

控制通过服务运行的应用程序的实例数

Quick & Dirty:使用 Process 类并监视具有特定名称的进程数量。您可以订阅 Process.Exited 事件,也可以只是在循环中轮询。

正确的解决方案:使用基于 WCF 的 IPC,并在服务和客户端之间创建握手

如果您可以使用信号量,您是否尝试将其初始值设置为 5? 这将允许在信号量阻塞之前对信号灯进行 5 次并发访问。