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

C# 控制通过服务运行的应用程序的实例数,c#,.net,windows,service,C#,.net,Windows,Service,我有一个windows服务,它监视文件夹中正在创建的新文件。一旦文件被放入,服务将启动另一个应用程序,并将此文件路径作为参数发送 我正在寻找一种方法来控制windows服务可以生成的第二个应用程序的实例数,例如,如果有一种方法可以设置第二个应用程序只应生成5个实例 我曾尝试在第二个应用程序中使用值为1的信号量,但这会使第二个应用程序在删除多个文件时一次执行一个文件,但Windows服务会启动实例数作为热文件夹中的文件数。我不想干扰第二个应用程序,我想删除其中的信号灯 Windows服务和第二个应

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

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

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


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

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

快速和脏:使用该类并监视具有特定名称的进程数量。您可以订阅Process.Exited事件,也可以在循环中进行轮询


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

全局信号应该可以帮助您,但我不明白。是Windows服务多次启动第二个应用程序,还是Windows服务多次启动?因为您的代码服务正在创建新的进程,而且很容易检查您启动的进程是否仍在运行,所以跟踪有多少进程处于活动状态应该很简单。大家好,这是启动第二个应用程序的服务。现在按照Harry和Jaster建议的解决方案进行,直到我通过Jaster建议的IPC找到一种使用WCF的方法。嗨,Jaster,谢谢你的建议,我将使用Quick&Dirty。有任何建议或链接可以指导使用基于WCF的IPC的正确解决方案吗?请在答案中查看我的WCF链接;Hi Spence,该服务启动的第二个应用程序实现了一个值为1的信号量。由于第二个应用程序的设计中有一个bug,它会挂起一段时间,而结束它的唯一方法是通过任务管理器。其他实例将永远等待,因为初始信号量从未释放。