【发布时间】:2013-07-17 17:25:32
【问题描述】:
我想同时运行多个任务。需要明确的是,我希望它们是同时的,而不仅仅是并行的——在任何时间点,我希望每个任务都消耗相同数量的 CPU 周期,在一定的容差范围内。在 .Net 中如何做到最好?
【问题讨论】:
-
你不能保证一个线程会有多少CPU Cycles,这是因为操作系统可能会阻塞一些线程而不是其他线程来运行其他程序(包括操作系统本身)
-
您只需要线程彼此同步吗?如果这是你想要的,那很容易做到。请添加一个说明,说明您要执行的操作具有“相同数量的 CPU 周期”要求,我们可以为您提供一些选择。
-
不,线程不需要彼此同步。我正在对一个工业过程进行多次模拟,并在模拟进行时显示中间结果。用户不仅要评估结果,还要评估所使用的不同算法的性能。因此,将使用 X 秒 CPU 时间的模拟产生的一组结果与使用 2X 秒 CPU 时间的模拟产生的另一组结果一起显示是不合适的。我需要模拟大致同时进行。
-
然后修复问题陈述,因为该评论在问题中根本不明显。
标签: .net multithreading task-parallel-library