• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
一个具有上进心的码农
因为一篇文章中有很多是从很多篇文章中摘取的,请恕我没有一一说明摘取出处,如果没有说明,则该文章默认是摘取,如有侵犯您的权益,请与我联系,将会马上删除。
博客园    首页    新随笔    联系   管理    订阅  订阅

异步的知识

Code
实现异步,主要包含以下几种方法 

1)  使用专用线程,方法为: 

System.Threading.ThreadStart ts 
= new System.Threading.ThreadStart(void(object state) target); 

System.Threading.Thread th 
= new System.Threading.Thread(ts); 

ts.Start(); 

调用Start()方法之前,并没有实质性得创建线程资源,而是Start()后才进行创建,此种方式的好处在于能设置线程是前台线程还是后台线程,并且能控制线程的挂起和消亡 


2)  使用线程池中的线程 
线程是一种比较宝贵的资源,所以使用的时候就要加倍珍惜,线程池中线程在使用完成之后并不是马上销毁,而是回到池中等待下一次的使用,这样就可以较少线程创建的消耗。使用方法如下: 

ThreadPool.QueueUserWorkItem(WaitCallback callback) 

需要注意的是此种方法使用的均为后台线程   

3)  使用异步编程模型 

这种方法是MS推荐的使用方法,该模型普遍格式为: 

BeginXXX(…IAsyCallBack callback,
object asyState); 

EndXXX(IAsyState ar); 

这种模型的好处上面已经有所阐述 

4) 使用BackgroundWorker 

.Net2.0下提供了BackgroundWorker,使用它可以轻易的完成异步操作,并且它还有一些功能上的加强,比如取消操作、 
posted @ 2009-07-27 15:01  不若相忘于江湖  阅读(131)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3