c# - 使用带有 WaitCallback 方法的 ThreadPool 与简单方法有什么区别

标签 c# multithreading concurrency threadpool

选项 1 和选项 2 之间的真正区别是什么?

选项 1

WaitCallback callback = new WaitCallback(PrintMessage);
ThreadPool.QueueUserWorkItem(callback, "Hello");

选项 2

ThreadPool.QueueUserWorkItem(PrintMessage, "World");

简单方法:

static void PrintMessage(object obj)
{
   Console.WriteLine(obj);
}

最佳答案

注意:“WaitCallback”代表要执行的方法。

选项 1:显式调用 WaitCallback,将方法排队等待执行。并且此方法调用在与主线程不同的线程上。

选项 2:.NET 框架将使用 WaitCallback 包装该方法。此方法调用也在与主线程不同的线程上。

简单方法:该方法调用在主线程中执行。

关于c# - 使用带有 WaitCallback 方法的 ThreadPool 与简单方法有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41009405/

相关文章:

java - java.util.concurrent.Future 的 scala.concurrent.Future 包装器

go - 同时多次下载同一文件

concurrency - 您如何在 ColdFusion 应用程序中使用 CFThread?

c# - 如何检查状态并决定执行代码的哪一部分

c# - 欧拉计划 #16 - C# 2.0

c# - 超时正在触发,但应用程序继续正常运行

java - 我在运行 java 线程时遇到问题,它只能运行一次

DataTables rowReordering (ASP.Net MVC) 期间的 JavaScript 运行时错误

c# - GetUserDetails错误错误27名称 'IMGUserLabel'在当前上下文中不存在

java - Java NetBeans 上的批量读取错误(列车调度)