我是 .NET 环境的新手。我需要一个 Windows 服务,其 Start
和 Stop
方法将调用特定的类,分别说 MainContext 的 Start 和 Stop 方法。 MainContext 类将包含通过 MEF 加载的扩展列表。 .每个扩展都需要以并发方式作为单独的线程运行。
MainContext
类将包含两个公共(public)方法Start
和Stop
,它们的返回类型均为 void 并且不包含任何参数。在调用 Start
方法时,它将以并发方式为通过 MEF 加载的每个扩展启动线程。而 Stop
方法将停止所有由 Start
方法启动的线程。
在这种情况下最好的线程实践是什么?我很困惑。我应该使用 System.Threading.Tasks.Task
类还是 System.Threading.Thread
类进行多线程处理,还是应该使用任何其他技术?哪个更适合我的要求,并能为我提供更大的灵 active 和稳定性?
最佳答案
我已经使用 MAF 完成了类似的事情,使用加载项监视文件服务器、数据库和 Web 服务。 Windows 服务调用每个加载项中的 Start 和 Stop 方法,这反过来启用或禁用 System.Timer.Timers。实际处理是在每个计时器的经过事件处理程序上完成的,该处理程序在池线程上运行。
其中一个加载项监视使用进程间通信的数据库表,以便我可以从 UI 应用程序监视和控制其他加载项。
关于c# - 通过 Windows 服务启动和停止并发线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10328234/