topshelf中有没有办法在一个可执行文件中运行多个主机?
// Create hosts
var h1 = HostFactory.New (...); var h2 = HostFactory.New (...)
// Start hosts
in one application Runner.Run (h1, h2);
Run Code Online (Sandbox Code Playgroud)
解决了线程.但不确定它是否安全......
new Thread (()=>Runner.Run (h1));
new Thread (()=>Runner.Run (h2));
Run Code Online (Sandbox Code Playgroud)
注意:这仅对 Topshelf 3.0 之前的版本有效。在 3.0 中,它被删除并被托管多个服务的其他方法所取代。
无法运行多个主机。启动主机会阻止执行,并执行一大堆事情。不过,您可以在单个主机中注册多个逻辑服务。
https://github.com/Topshelf/Topshelf/wiki/Creating-a-service
return (int)HostFactory.Run(x => {
x.Service<Service1>({ ... });
x.Service<Service2>({ ... ]);
});
Run Code Online (Sandbox Code Playgroud)
所有逻辑服务都在单个 AppDomain 下运行。这可能是也可能不是问题。如果您需要将它们托管在单独的 AppDomain 中,我们就开始进行搁置工作。http://topshelf-project.com/documentation/shelving/作为警告,如果您要启动多个具有相同类型的逻辑服务,请确保它们在配置时具有唯一的名称。
| 归档时间: |
|
| 查看次数: |
4359 次 |
| 最近记录: |