【发布时间】:2018-04-03 09:32:35
【问题描述】:
我得到了一个打印服务,它现在也可以进行文件集成,以便同时完成这两项任务,尽管我使用线程。
看到这个Thread Tutorial之后,我就搜索了Join do.是什么
如果我没记错的话,Join 会终止线程,对吗?所以我的问题是,由于服务应该 24/7 全天候运行,直到有人需要停止线程,我可以只做一个 Thread.Sleep 让他们等待下一次交互而不是加入并再次启动他们吗?
即使他们使用不同的方法处理不同的对象,他们仍然会产生死锁吗?由于它是用于服务的,因此我不能让它多次出现死锁。
编辑:我做了以下测试,它似乎运行良好,任何有更多使用线程经验的人可以检查是否会在以后给我带来问题? (此代码是测试样例,不是我的服务)。
【问题讨论】:
-
“加入终止线程,对吗?”。阅读您的链接:“加入等待线程完成”
-
是的,但如果我想让线程保持活力,我必须避免加入,对吧?
-
我建议使用 Tasks,阅读一下albahari.com/threading/part5.aspx#_Task_Parallelism
-
@Evk 我添加了一个示例,你能检查一下并告诉我以后是否会给我带来问题吗?我编辑了我的问题,这不是我的实际服务,只是我在实施之前用来测试线程的示例。
标签: c# multithreading service