【发布时间】:2013-08-08 07:45:39
【问题描述】:
我正在构建一个模拟赛马的小型应用程序,以便获得一些使用线程的基本技能。
我的代码包含这个循环:
for (int i = 0; i < numberOfHorses; i++)
{
horsesThreads[i] = new Thread(horsesTypes[i].Race);
horsesThreads[i].Start(100);
}
为了保持比赛“公平”,我一直在寻找一种方法,让所有新创建的线程等到设置完其余的新线程,然后才启动所有线程以开始运行它们的方法(请注意,我理解从技术上讲,线程不能在“同时”启动)
所以基本上,我正在寻找这样的东西:
for (int i = 0; i < numberOfHorses; i++)
{
horsesThreads[i] = new Thread(horsesTypes[i].Race);
}
Monitor.LaunchThreads(horsesThreads);
【问题讨论】:
-
您可以使用 TPL 并设置任务列表吗?除非你特别想以这种方式学习?
-
在新的 .net 框架中,您有 async 关键字。单词检查以更新您的技能。
-
@lordkain 然而,与这种情况无关
标签: c# multithreading synchronization