我有一个List(Of IWorker)
其中包含一些混凝土。 IWorker
依次具有Startup()
和Shutdown()
方法。协调工作者线程关闭
在Worker类中,Startup()
创建一个新的工作线程,然后返回。 Shutdown()
目前设置私人ShutDownRequested
标志并返回。该标志由工作者线程检查(最坏每隔几秒)。
这一切工作正常,但目前父应用程序无法确定工人是否已完成关闭。
我可以看到很多方法,但我不知道最好的是什么。
- 将
State
财产添加到IWorker
。应该工作,但我会投票状态,这似乎有点讨厌。 - 使关闭命令阻止 - 可能是我的理想解决方案,但我不知道如何实现它 - 工作人员
Sunclock
私人对象Shutdown()
也应尝试在设置标志后的Synclock? - 还有别的吗?
任何文章,意见或建议表示赞赏。 C#或VB中的例子很好。
这取决于你想要做什么以及为什么。调用'Shutdown()'时你想阻塞吗?你想显示给用户的状态?还有别的吗? – svick
@svick这是在控制台应用程序中运行。目前,在调用启动worker之后,控制台每隔几秒钟循环一次,从worker读取一些状态信息并显示它(处理的事件,使用的带宽等)。当用户按Enter键退出应用程序时,关机被发送给每个工作人员。我只是想等到关机完成后,打印一个干净关机的确认信息,然后退出。如果应用程序没有关闭并且工作人员退出,它将被回收并重新开始。 – Basic