1.线程类
public Thread Test(object o)
{
return new Thread(new ParameterizedThreadStart(o =>
{
//执行操作
})) { IsBackground = true };
}
IsBackground = true 为后台线程,默认为前台线程。
调用方法:
//方法1
Thread th = Test();
th.Start(参数);
//方法2
Test().Start(参数);
2.ThreadPool.QueueUserWorkItem 方法
ThreadPool.QueueUserWorkItem 方法是用于将工作项提交到线程池队列中的方法。当你需要执行一个方法但不想创建一个新的线程时,可以使用该方法。这个方法会将工作项放到一个线程池队列中,并由线程池中的一个线程来执行该工作项。
方法的第一个参数是 WaitCallback 委托类型,它表示要在线程池上执行的方法。第二个参数是一个对象,表示要传递给该方法的参数。这个参数可以是任何类型的对象,但需要注意的是,如果需要传递多个参数,则应该将它们封装在一个对象中。
当线程池中有可用的线程时,线程池会从队列中取出一个工作项并使用一个线程来执行它。当该线程执行完成后,它将返回到线程池中,等待下一个工作项。使用 ThreadPool.QueueUserWorkItem 方法可以避免创建大量的线程,从而减少内存消耗和上下文切换开销。
WaitCallback
WaitCallback
是一个委托类型,在 C# 中用于指定要在线程池中执行的方法。它的定义如下:
namespace System.Threading
{
//
// 摘要:
// 表示要由线程池线程执行的回调方法。
//
// 参数:
// st