c#中的线程执行顺序

7ad*_*dan 1 c# multithreading synchronization

我有一个线程列表我想确保它们之间的执行顺序这是代码

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

我想知道thread.join()能否做到这一点.

Iva*_*lev 8

如果您的任务可以异步执行(乱序),则线程是合适的.但是,如果您要按顺序执行许多任务(严格依次执行),那么为什么要使用线程?您应该在for循环中执行它们,因为它们无法并行化.使用Thread.Join等待后立即启动它会做的伎俩线程,但这样你将不得不等待,直到任务开始下一个,有效地执行命令之前完成.

但是,如果你有一些任务可以同时执行,而其他部分必须是顺序的,你可以看一下C#任务并行库,它可以很容易地做到这一点.