C#相当于Python的ThreadPool

问题描述 投票:0回答:1

我想问一下,Python的Threadpool函数有什么可以替代的吗?我有一个函数,接受一个字符串作为输入,我有一个输入列表。我想要的是在多个线程中执行这个函数(最多12个),这样每个线程都会从列表中传递一个字符串输入,如果列表的大小大于线程数,那么它就会等待任何一个线程完成执行,然后在下一个输入的线程中再次启动这个函数。希望这个问题能让大家明白。

我已经在Python中完成了这个工作。

def myfunc(input):
 print(input)

if__name__ == "__main__":
 inputs = [1,12,2,3,4,5,6,7,8,9,1,0,1,2,3,4,5,6,4,8,97,7]
 ThreadPool(12).map(myfunc, inputs)
python c# multithreading threadpool
1个回答
2
投票
static void Main()
{
    var inputs = new[] { 1, 12, 2, 3, 4, 5, 6, 7, 8, 9, 1, 0, 1, 2, 3, 4, 5, 6, 4, 8, 97, 7 };
    Parallel.ForEach(inputs, new ParallelOptions { MaxDegreeOfParallelism = 12 }, MyFunc);
}
static void MyFunc(int value) { /*...*/ }
© www.soinside.com 2019 - 2024. All rights reserved.