C#控制台和服务之间的共享DLL

时间:2012-11-20 20:11:06

标签: c# windows-services console-application

我正在创建一个带有DLL的项目,该DLL将具有一个公共方法Process();

将会有一个服务,每三分钟调用一次这个方法。

还有一个控制台应用程序将调用此方法。

如果该方法当前正在运行,如何在服务运行时让控制台应用程序不再调用它?

3 个答案:

答案 0 :(得分:4)

您将需要设置某种类型的IPC - 例如,在该方法中使用的global mutex信号正在运行/当前未运行将解决该问题(只要两者都在同一台机器上运行即可)...

答案 1 :(得分:1)

您可以使用named mutex来阻止呼叫者调用相同的方法。

Addiotional note:
如果服务最终创建并以管理员身份运行,您可能会遇到有关指定互斥锁的权限问题,除非您在互斥锁上设置适当的权限,否则您的控制台应用程序可能无权访问互斥锁。

答案 2 :(得分:1)

您应该考虑使用互斥锁。这是一篇来自MSDN的文章: http://msdn.microsoft.com/en-us/library/hw29w7t1(v=vs.100).aspx