c# 线程池:开启10个线程运行Fibonacci,并在所有线程运行完后,得出结果。
时间: 2023-07-07 09:43:50 浏览: 32
你可以使用C#中的Task类和Task.WaitAll方法实现这个需求,而不是直接使用线程池。以下是示例代码:
```csharp
using System;
using System.Threading.Tasks;
class Program
{
static void Main()
{
int n = 10;
Task<long>[] tasks = new Task<long>[n];
for (int i = 0; i < n; i++)
{
tasks[i] = Task.Run(() => Fibonacci(i + 1));
}
Task.WaitAll(tasks);
long sum = 0;
foreach (var task in tasks)
{
sum += task.Result;
}
Console.WriteLine("The sum of the first {0} Fibonacci numbers is {1}", n, sum);
}
static long Fibonacci(int n)
{
if (n <= 1) return n;
return Fibonacci(n - 1) + Fibonacci(n - 2);
}
}
```
这个示例程序使用了Task.Run方法将Fibonacci方法包装成一个任务,然后将多个任务存储在一个数组中。调用Task.WaitAll方法等待所有任务完成后,累加它们的结果并输出。