【发布时间】:2020-01-06 01:12:50
【问题描述】:
我正在创建一个应用程序来处理要处理的大量数据。我想在 C# 中使用线程只是为了让它处理得更快。请参阅下面的示例代码。
private static void MyProcess(Object someData)
{
//Do some data processing
}
static void Main(string[] args)
{
for (int task = 1; task < 10; task++)
{
ThreadPool.QueueUserWorkItem(new WaitCallback(MyProcess), task);
}
}
这是否意味着每次将任务传递给“MyProcess”方法的循环都会创建一个新线程(总共 10 个线程)?另外,线程会并发处理吗?
【问题讨论】:
-
为什么不在 Visual Studio 中调试时查看线程窗口?
-
因为这是您的
Main方法(所以进程刚刚开始),是的,线程是新创建的(线程池“缓存”这些线程以防您以后想再次使用它们)。如果您有 10 个 cpu 核心,它们可能同时运行。 -
Parallel.For(1, 10, task => { ... })
标签: c# multithreading threadpool