gpt4 book ai didi

.net - 多参数线程效率

转载 作者:行者123 更新时间:2023-12-02 06:46:12 25 4
gpt4 key购买 nike

是否有更优雅的方式来编写以下语法?

        Thread t0 = new Thread(new ParameterizedThreadStart(doWork));
t0.Start('someVal');
t0.Join();

Thread t1 = new Thread(new ParameterizedThreadStart(doWork));
t1.Start('someDiffVal');
t1.Join();

假设我们要传递 20 个不同的值,最好的设置方法是什么?循环并在最后加入?

如果一个新线程没有被实例化(如下所示),它会报错说线程不能被重新启动。例如:

        Thread t1 = new Thread(new ParameterizedThreadStart(doWork));
t1.Start('someVal');
t1.Start('someDiffVal');

最佳答案

为什么要启动一个线程然后立即加入它?

我通常会这样做:

List<Thread> threads = new List<Thread>();

foreach (string item in items)
{
string copy = item; // Important due to variable capture
ThreadStart ts = () => DoWork(copy); // Strongly typed :)
Thread t = new Thread(ts);
t.Start();
threads.Add(t);
}

foreach (Thread t in threads)
{
t.Join();
}

关于.net - 多参数线程效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/255063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com