我是.NET环境的新手。我需要一个Windows服务,其Start
和Stop
方法将调用一个特定的类,分别说MainContext的Start和Stop方法。 MainContext类将包含通过MEF加载的扩展列表。每个扩展都需要以并发方式作为单独的线程运行。
类MainContext
将包含两个公共方法Start
和Stop
,两者都返回类型为void且不包含任何参数。在调用Start
方法时,它将以并发方式为通过MEF加载的每个扩展启动线程。虽然Stop
方法将停止由Start
方法启动的所有线程。
在这种情况下哪种线程最好?我很迷惑。我应该使用System.Threading.Tasks.Task
类或System.Threading.Thread
类进行多线程还是应该使用其他任何技术?哪种更适合我的要求,并为我提供更大的灵活性和稳定性?
答案 0 :(得分:0)
我使用MAF做了类似的事情,加载项看着文件服务器,数据库和Web服务。 Windows服务在每个加载项中调用Start和Stop方法,这些方法又启用或禁用System.Timer.Timers。实际处理是在每个计时器的已用事件处理程序上完成的,该处理程序在池化的线程上运行。
其中一个加载项监视一个使用进程间通信的数据库表,以便我可以从UI应用程序监视和控制其他加载项。