我正在开始服务,一切都很好。 但问题在我脑海中
当我跑步时:
ServiceBase.Run(ServicesToRun.ToArray());
我想首先要说的是,ServicesToRun列表是一个对象集合,全部派生自ServiceBase类,它们都为不同的客户端执行“相同”的任务。
每个班级都得到了成功的启动。 到目前为止没问题。 但我的问题是。
ServiceToRUn的每个实例都有它自己的内存空间吗? 作为数组中的服务,有一些静态变量(并且不能更改)
如果它们不在不同的内存空间上运行,我可以通过启动来“包装”: a)进程(使用.exe) b)开始svchost(如果我知道如何正确启动它)
b)可能吗?
谢谢
答案 0 :(得分:-1)
ServiceToRUn的每个实例都有它自己的内存空间吗?
是。因为在每个类的实例中都有它自己的记忆。
不,因为它没有启动其他进程。它只是指示服务开始。
b是可能的 - 考虑到现代服务器有多少内存,不确定为什么你会这么做。请注意,最后不会优化内存消耗。多个exe - mutli servicehosts - 由于更高的运行时内存分配(每个进程一个)而效率较低。
最后,我甚至质疑为什么你有多种服务。你说每个客户一个 - 有一种类似“没有提供可以处理多个客户的服务”的气味。