2

我是 .NET 环境的新手。我需要一个 Windows 服务,它的Start方法Stop将调用一个特定的类,分别是 MainContext 的 Start 和 Stop 方法。MainContext 类将包含通过MEF加载的扩展列表。每个扩展都需要以并发方式作为单独的线程运行。

该类MainContext将包含两个公共方法StartStop,它们的返回类型都是 void 并且不包含任何参数。在调用Start方法时,它将以并发方式为通过 MEF 加载的每个扩展启动线程。而该Stop方法将停止该方法启动的所有线程Start

在这种情况下,最好的线程实践是什么?我很困惑。我应该使用System.Threading.Tasks.Task类或System.Threading.Thread类进行多线程还是应该使用任何其他技术?哪个更适合我的要求并为我提供更多的灵活性和稳定性?

4

1 回答 1

0

我使用 MAF 做过类似的事情,通过插件监视文件服务器、数据库和 Web 服务。Windows 服务在每个加载项中调用 Start 和 Stop 方法,从而启用或禁用 System.Timer.Timers。实际处理是在每个计时器的经过事件处理程序上完成的,该处理程序在一个池线程上运行。

其中一个加载项监视使用进程间通信的数据库表,以便我可以从 UI 应用程序监视和控制其他加载项。

于 2012-04-30T20:23:59.490 回答