0

我正在创建一个新线程以在 foreach 循环的每次迭代期间执行一些代码。这些线程完成后,我希望主线程继续执行,但是我不知道该怎么做。我不能调用Thread.Join()每次迭代,因为这将阻止主线程继续 foreach 循环,直到创建的线程完成。这是代码块,其中testEnvironments是字符串类型的列表:

        foreach (string s in testEnvironments)
        {
            myThread = new Thread(() => program.KickoffPricing(s));
            myThread.Start();
            Thread.Sleep(1000);
        }

        email.ComposeEmail();
4

1 回答 1

5

您需要将所有Threads 存储在 a 中List<Thread>,并在启动所有这些后创建一个单独的foreach循环来存储Join()它们。

请注意,您可以通过使用Task而不是Thread,或者更好的是,使您的代码更简单、更高效Parallel.ForEach()

于 2013-01-02T21:40:58.777 回答