首页 > 代码库 > 多线程
多线程
本文仅为笔记整理,所有内容均来自网络
一、异步执行(让执行过程要较长等待时间的方法异步执行)
1、异步方法:在方法调用前为异步方法指定一个回调函数,方法调用后被线程池中的一个线程接管,执行该方法。主线程立即返回,继续执行其他工作。如果异步方法执行完毕,会自动执行回调方法,处理异步方法的调用结果。实现:通过异步委托调用BeginInvoke和EndInvoke方法来实现异步方法,
2、IAsyncResult BeginInvoke(委托参数列表, AsyncCallback callback回调用函数, object o附加信息[赋值到IAsyncResult .AsyncState中])
3、委托返回值类型 EndInvoke(IAsyncResult result) 结束后台线程
4、 IAsyncResult :异步结果 属性:IsCompleted是否完成 AsyncWaitHandle关联的等待句柄[WaitHandle对象:waitone(超时时间,bool)] AsyncState(用户定义的对象)
5、AsyncCallback:public delegate void AsyncCallback(IAsyncResult ar)
二、线程池
1、线程池通过为应用程序提供一个由系统管理的辅助线程池,使您可以有效地使用线程。在首次创建ThreadPool类的实例时被创建。线程池具有每个可用处理器25个线程的默认限制,可以将与等待操作不相关的工作排列到线程池。
2、ThreadPool类是利用多个线程最方便且最好的方法用以处理一些需要多个线程的较短任务,调用QueueUserWorkItem 方法。bool QueueUserWorkItem(WaitCallback callBack, object state) WaitCallback:public delegate void WaitCallback(object state);
多线程