当前位置: 首页 > news >正文

做app网站宁波网站关键词

做app网站,宁波网站关键词,搜狗推广下架,楼盘 东莞网站建设同步#xff0c;异步#xff0c;多线程#xff0c;你怎么看#xff1f; 原文:同步#xff0c;异步#xff0c;多线程#xff0c;你怎么看#xff1f;[原创]讲解同步与异步的帖子多如牛毛#xff0c;个人的理解#xff0c;简单地说同步就是串行#xff0c;异步就是并… 同步异步多线程你怎么看 原文:同步异步多线程你怎么看[原创]  讲解同步与异步的帖子多如牛毛个人的理解简单地说同步就是串行异步就是并行。同步的情况下A调用BA等B执行完成后接着执行自始至终只有一个线程在运行而异步时A调用BB执行A也继续执行这个过程中有两个线程在运行。本文通过winform下的一个实例讲解同步与异步的差别本文的例子很简单适合初学者。   1.同步   大家应该经常碰到这种情况点击界面上某个按钮或者某个控件后界面卡死的情况个人觉得其中一个原因可能是主线程的问题界面主线程在后台处理其他任务没法同时响应用户的操作。看一个最简单的例子界面如下    代码 private void btnCalc_Click(object sender, EventArgs e)         {                int sum Calc(100);               rtxtMain.Text calc over, result is sum;               MessageBox.Show(计算完成, 提示);         }         private int Calc(int n)         {               int sum 0;               Thread.Sleep(TimeSpan.FromSeconds(20));               for (int i 0; i n; i)               {                     sum i;               }               return sum;         }   很明显使用这种方法时点击按钮后界面就卡住直到后台方法执行完才响应。原因是只有主线程在运行那么咱们再重新起一个新线程可以自己另起一个线程或者使用.NET提供的异步方法。     2.异步   .NET异步时重新从线程池中启动了一个线程本例中这个线程负责执行后台的方法界面主线程继续响应用户的操作。线程池线程执行完后台方法后弹出提示框提示主线程工作已做完。代码如下         public delegate int CalcEventHandler(int n);     //定义委托     public partial class MainFrm : Form       {             public MainFrm()              {                   InitializeComponent();                   Control.CheckForIllegalCrossThreadCalls false;          //禁用非法跨线程调用检查     }           private void btnCalc_Click(object sender, EventArgs e)             {                   CalcEventHandler mycalc new CalcEventHandler(Calc);                   AsyncCallback async new AsyncCallback(OnComplete);             //回调方法       mycalc.BeginInvoke(100, async, this is your data );                  //执行异步     }         private int Calc(int n)             {                   int sum 0;                   Thread.Sleep(TimeSpan.FromSeconds(20));                   for (int i 0; i n; i)                   {                         sum i;                   }                   return sum;             }    //异步完成后执行的回调方法         private void OnComplete(IAsyncResult asycResult)            {                 AsyncResult result (AsyncResult)asycResult;                 CalcEventHandler del (CalcEventHandler)result.AsyncDelegate;      //向下转换           int sum del.EndInvoke(asycResult);     //获取返回值                string data result.AsyncState ! null ? result.AsyncState.ToString() : string.Empty;           //获取传递的数据      rtxtMain.Text calc over, 结果为 sum , 传递信息为 data;                 MessageBox.Show(计算完成,提示);         //提示主线程   }     } 结果如下   这样界面不会出现卡死的情况可以提高用户体验。当然这只是一个简单的例子。     还有一种方法就是自己另外启一个线程代码如下   private void btnCalc_Click(object sender, EventArgs e)           {                   Thread tr new Thread(new ThreadStart(Calc));       //启动新线程           tr.Start();           }         private void Calc()      //重载方法      {                 Calc(100);           }           private int Calc(int n)           {                 int sum 0;                 Thread.Sleep(TimeSpan.FromSeconds(5));                 for (int i 0; i n; i)                 {                       sum i;                 }                 rtxtMain.Text calc over, 结果为 sum;             //提示移到这里     MessageBox.Show(计算完成, 提示);                return sum;           }     小结   1.这个例子很简单用于了解同步和异步的区别和作用。    2.同步和异步跟为委托和多线程是相关联的有兴趣的朋友继续学习委托和多线程相关知识。   本文写的很简单谢谢你的阅读如果有好的建议或方法欢迎留言一起交流~~           posted on 2014-03-14 15:27 NET未来之路 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/lonelyxmas/p/3600676.html
http://wiki.neutronadmin.com/news/353440/

相关文章:

  • 深圳做h5网站wordpress怎样建立二级菜单
  • 大兴区企业网站建设酒店品牌策划方案
  • 淘宝客 网站选择WORDPRESS四川省建设建设监理协会网站
  • 苏州教育网站建设焦作seo推广
  • 做网站后台需要写代码吗国内做外单的网站有哪些
  • 电商网站建设实训报告心得推广网站的软文
  • 汕头第一网e京网优化标题关键词技巧
  • 网站制作xiu021建设网站职业证书查询
  • 网站怎么吸引流量郴州优化公司
  • logo是个网站怎么购买域名和服务器
  • php网站开发用什么php有自己网站好处
  • 杭州网站建设设计公司企业自助建站系统 嘉兴
  • 做动态图片下载哪个网站好高端品牌男鞋
  • 南昌网站设计单位公司汽车之家2023官网
  • zhihe网站建设 淘宝自己做网站成本
  • asp网站防攻击陕西大型网站建设
  • 在哪个网站可以做行测题豆浆怎么制作教程
  • 淘宝客 网站 建站新平台推广文案
  • 易语言可以做网站管理系统吗网站群建设技术方案
  • 建行网站查询密码是什么东西微网站开发的比较总结
  • 黑龙江省建设集团有限公司网站咖啡色网站模板
  • 武城网站建设费用建工网校一级建造师
  • 用dw怎么做网站首页百度一下官方网
  • 莱城高新区建设局网站360网站备案查询
  • html判断域名 然后再跳转到网站湖南畅想网站建设
  • 做暧视频网站大全wordpress主题汉化包怎么用
  • 管理手机网站wordpress导出模板
  • 上海工商核名查询系统官网关键词排名优化到首页
  • 自动优化网站软件没有了简单网页制作模板
  • 上海网站开发企业百度推广入口页面