我有一个线程列表我想确保它们之间的执行顺序这是代码
for (int k = 0; k < RadioList.Count; k++)
{
for (int i = 0; i < filePaths.Count(); i++)
{
Thread t = new Thread(delegate()
{
Thread_Encde_function(TempRadio.PublishPoint, filePaths[i], encodingtype);
});
t.Start();
Thread.Sleep(1000);
}
}
我想知道thread.join()
能否胜任。
答案 0 :(得分:8)
如果您的任务可以异步执行(乱序),那么线程是合适的。但是,如果您要按顺序执行许多任务(严格依次执行),那么为什么要使用线程?您应该在for循环中执行它们,因为它们无法并行化。使用Thread.Join
在启动它之后立即等待线程就可以了,但是这样你就必须等到任务完成才开始下一个任务,然后按顺序有效地执行它们。
但是,如果你有一些任务可以同时执行,而其他部分必须是顺序的,你可以看一下C# Task Parallel Library,它可以很容易地做到这一点。 / p>