网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

C#中如何实现长任务操作

今天就跟大家聊聊有关C#中如何实现长任务操作,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

在三门峡等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站设计制作、网站建设 网站设计制作按需定制网站,公司网站建设,企业网站建设,品牌网站制作,成都全网营销推广,外贸营销网站建设,三门峡网站建设费用合理。

许多种类的应用程序都需要长时间操作,比如:执行一个打印任务,请求一个 Web Service 调用等。用户在这种情况下一般会去转移做其他事情来等待任务的完成,同时还希望随时可以监控任务的执行进度。

C#中如何实现长任务操作

C#多线程控制进度条之长任务操作图1

下面的代码片断示例了当长任务执行时用户界面是如何被更新的。

// 显示进度条  ,C#多线程控制进度条之长任务操作void ShowProgress( int totalStep, int currentStep )  {  _Progress.Maximum = totalStep;  _Progress.Value = currentStep;  }   // 执行任务  void RunTask( int seconds )  {  // 每 1 / 4 秒 显示进度一次  for( int i = 0; i < seconds * 4; i++ )  {  Thread.Sleep( 250 );   // 显示进度条 ,C#多线程控制进度条之长任务操作 ShowProgress( seconds * 4, i + 1 );  }  }   private void _btnRun_Click(    object sender, System.EventArgs e )  {  RunTask( Convert.ToInt32( _txtSecond.Value ) );  }

当我们运行上面的程序,在整个长任务的过程中,没有出现任何问题。这样就真的没有问题了吗?当我们切换应用程序去做其他事情后再切换回来,问题就发生了!主窗体就会出现如下情况:

C#中如何实现长任务操作

C#多线程控制进度条之长任务操作图2

这个问题当然会发生,因为我们现在的应用程序是单线程的,因此,当线程执行长任务时,它同时也就不能重画用户界面了。

为什么在我们切换应用程序后,问题才发生呢?这是因为当你切换当前应用程序到后台再切换回前台时,我们需要重画整个用户界面。但是应用程序正在执行长任务,根本没有时间处理用户界面的重画,问题就会发生。

如何解决问题呢?我们需要将长任务放在后台运行,把用户界面线程解放出来,因此我们需要另外一个线程。

看完上述内容,你们对C#中如何实现长任务操作有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。


网站题目:C#中如何实现长任务操作
本文链接:http://bjjierui.cn/article/jidcej.html

其他资讯