【发布时间】:2019-03-01 07:24:53
【问题描述】:
在多线程应用程序中,我们启动多个线程。我们允许线程以随机顺序执行,除了其中一个函数调用,我们需要确保执行顺序。如何在 C# 中做到这一点?
【问题讨论】:
-
您将使用什么标准来订购您的线程?
标签: c# asp.net multithreading
在多线程应用程序中,我们启动多个线程。我们允许线程以随机顺序执行,除了其中一个函数调用,我们需要确保执行顺序。如何在 C# 中做到这一点?
【问题讨论】:
标签: c# asp.net multithreading
我不确定处理这种情况的最正确方法,因为线程自然是异步的。
但我会使用的最简单的技巧是并发控制。 假设您有 3 个线程 T1、T2 和 T3,以及 3 个互斥锁 M1、M2 和 M3。每当您需要开始按顺序执行它们时,请使用互斥锁来创建某种链锁:
T1 获得 M1 锁 T2获取M2锁,等待M1释放 T3 获取 M3 锁并等待 M1 和 M2 被释放。
当一个线程完成了该任务的一部分时,然后释放它的锁。
等等,还有更多的线程。
希望对你有帮助。
【讨论】: