首页 > Windows开发 > 详细

C# 异步操作

时间:2015-03-26 17:30:21      阅读:225      评论:0      收藏:0      [点我收藏+]

  在程序中,普通的方法是单线程的。但中途如果有大型的操作,比如读取大文件,大批量操作数据库,网络传输等,都会导致程序阻塞,表现在界面上就是程序卡或者死掉,界面元素不动了,不响应了。C#异步调用很好的解决了这些问题。C#异步调用执行某个方法,程序立即开辟一个新线程去执行你的方法,主线程就不会死掉了。在这里需要注意,C#异步调用出来的新线程必须回收,不回收是浪费资源的可耻行为。

   C#在回收线程时使用的是回调函数。C#异步调用结束后,自动调用此回调函数。C#中使用委托实际是使用的异步操作。下面为实例:

    第一步:首先定义一个委托。

    private delegate string DelegateName(int Num,out int Num2);

    第二步:需要异步执行的方法。

    private string MethodName(int Num,out int Num2)

    {

       Num2=Num;

       return "Hello C#";

    }

    第三步:定义异步操作后执行的回调函数。

    private void CallbackMethod(IAsyncResult ar)

    {

       //获取委托对象。

       DelegateName dn=(DelegateName)ar.AsyncState;

       //回收线程资源。

       dn.EndInvoke(ar);

     }

     第四步:主程序代码

     //实例化委托

     DelegateName dn=new DelegateName(MethodName);

     //执行异步操作

     dn.BeginInvok(1000, new AsyncCallback(CallbackMethod), dn);

 

C# 异步操作

原文:http://www.cnblogs.com/zqhxl/p/4369131.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!