c# – 在Windows服务上调用公共方法

我在 Windows服务(.NET C#)中有一个计时器.我需要能够从外部程序更改已用值.如果计时器当前正在运行,我需要能够缩短外部程序的经过时间值.我想在服务中使用一个公共方法来改变计时器经过的值并重新启动计时器,但是外部程序可以在Windows服务上调用公共方法吗?

解决方法

简而言之,不可能在另一个进程中直接调用函数.包含您要访问的功能(在本例中为Windows服务)的进程需要通过某种IPC(进程间通信)公开它.您选择哪种类型的IPC可能取决于通信需要多复杂,以及“客户端”是否是.NET应用程序.

如果您的需求很简单(例如,只设置一个计时器值),或者您的客户端不使用.NET,则使用命名管道(或TCP,如果您需要从另一台物理计算机访问该服务)可能是您最好的选择.命名管道和TCP都为您提供了一个Stream,您可以将消息写入另一端并在另一端读取.

如果您需要公开许多不同的功能或发送和接收复杂的数据类型,并且如果您在两端都使用.NET,那么.NET Remoting或WCF可能是最好的. .NET Remoting更简单但有更多限制; WCF非常灵活,但学习曲线更陡峭.

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...