Loading
0

c#ThreadPool创建异步线程

若该文章解决了您的问题,可否收藏+评论+分享呢?
c#ThreadPool创建异步线程
ThreadPool使用QueueUserWorkItem函数创建异步线程,它有两个重载

public static bool QueueUserWorkItem(WaitCallback callBack);
public static bool QueueUserWorkItem(WaitCallback callBack, object state);

WaitCallback 类型是一个委托,它接收一个object的参数,即state

ThreadPool.QueueUserWorkItem(state => Console.WriteLine(state), "Hello World");

ThreadPool的一些常用的API


ThreadPool.SetMaxThreads(100, 100);//设置最大线程数量
ThreadPool.GetMaxThreads(out workerThreads,out IOThreads);//获取最大线程数量


线程等待
ThreadPool通过ManualResetEvent类实现线程等待

ManualResetEvent mre = new ManualResetEvent(false);
ThreadPool.QueueUserWorkItem(state => {
                Console.WriteLine("123");
                mre.Set();
            }, "Hello World");

mre.WaitOne();//线程等待



 

声明:站长码字很辛苦啊,转载时请保留本声明及附带文章链接:https://blog.tag.gg/showinfo-23-36074-0.html
亲爱的:若该文章解决了您的问题,可否收藏+评论+分享呢?
上一篇:c#实现Thread创建异步线程
下一篇:c#Task创建异步线程