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

相城做网站的公司/台州专业关键词优化

相城做网站的公司,台州专业关键词优化,html5效果网站,51软件测试网站在WinForm中经常遇到一些费时的操作界面,比如统计某个磁盘分区的文件夹或者文件数目,如果分区很大或者文件过多的话,处理不好就会造成“假死”的情况,或者报“线程间操作无效”的异常,为了解决这个问题,可以…

在WinForm中经常遇到一些费时的操作界面,比如统计某个磁盘分区的文件夹或者文件数目,如果分区很大或者文件过多的话,处理不好就会造成“假死”的情况,或者报“线程间操作无效”的异常,为了解决这个问题,可以使用委托来处理,在.net2.0中还可以用BackgroundWorker类。

BackgroundWorker类是.net 2.0里新增加的一个类,对于需要长时间操作而不需要用户长时间等待的情况可以使用这个类。
 注意确保在 DoWork 事件处理程序中不操作任何用户界面对象。而应该通过 ProgressChanged 和 RunWorkerCompleted 事件与用户界面进行通信。 

程序代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

/*
 * 作者:周公
 * BackgroundWorker类是.net 2.0里新增加的一个类,对于需要长时间操作而不需要用户长时间等待的情况可以使用这个类。
 * 注意确保在 DoWork 事件处理程序中不操作任何用户界面对象。而应该通过 ProgressChanged 和 RunWorkerCompleted 事件与用户界面进行通信。
 * 它有几个属性:
 * CancellationPending——指示应用程序是否已请求取消后台操作。
 * IsBusy——指示 BackgroundWorker 是否正在运行异步操作
 * WorkerReportsProgress——该值指示 BackgroundWorker 能否报告进度更新
 * WorkerSupportsCancellation——该值指示 BackgroundWorker 是否支持异步取消
 * 还有如下事件:
 * DoWork——调用 RunWorkerAsync 时发生。
 * ProgressChanged——调用 ReportProgress 时发生。
 * RunWorkerCompleted——当后台操作已完成、被取消或引发异常时发生。
 * 
 * 还有如下方法:
 * CancelAsync——请求取消挂起的后台操作
 * ReportProgress——引发 ProgressChanged 事件
 * RunWorkerAsync——开始执行后台操作
 * 
 *
*/
namespace BackgroundWorkerDemo
{
    
public partial class MainForm : Form
    {
        
private BackgroundWorker worker = new BackgroundWorker();
        
public MainForm()
        {
            InitializeComponent();
            worker.WorkerReportsProgress 
= true;
            worker.WorkerSupportsCancellation 
= true;
            
//正式做事情的地方
            worker.DoWork+=new DoWorkEventHandler(DoWork);
            
//任务完称时要做的,比如提示等等
            worker.ProgressChanged += new ProgressChangedEventHandler(ProgessChanged);
            
//任务进行时,报告进度
            worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(CompleteWork);
        }

        
//调用 RunWorkerAsync 时发生
        public void DoWork(object sender, DoWorkEventArgs e)
        {
            e.Result 
= ComputeFibonacci(worker, e);//当ComputeFibonacci(worker, e)返回时,异步过程结束
        }
        
//调用 ReportProgress 时发生
        public void ProgessChanged(object sender, ProgressChangedEventArgs e)
        {
            
this.progressBar1.Value = e.ProgressPercentage;
        }
        
//当后台操作已完成、被取消或引发异常时发生
        public void CompleteWork(object sender, RunWorkerCompletedEventArgs e)
        {
            MessageBox.Show(
"完成!");
        }

        
private int ComputeFibonacci(object sender, DoWorkEventArgs e)
        {
            
for (int i = 0; i < 1000; i++)
            {
                
if (worker.CancellationPending)
                {
                    e.Cancel 
= true;
                    return -1;
                }
                
else
                {
                    worker.ReportProgress(i);
                }
                System.Threading.Thread.Sleep(
10);
            }
            
return -1;
        }

        
private void btnStart_Click(object sender, EventArgs e)
        {
            worker.RunWorkerAsync();
            btnStart.Enabled 
= false;
            btnPause.Enabled 
= true;
        }

        
private void btnPause_Click(object sender, EventArgs e)
        {
            btnPause.Enabled 
= false;
            btnStart.Enabled 
= true;
            worker.CancelAsync();
        }
    }
}

转载于:https://www.cnblogs.com/fifastar/archive/2008/07/15/1243305.html

http://www.lbrq.cn/news/1077841.html

相关文章:

  • 邯郸医疗网站建设/seo是什么意思电商
  • 网站性能容量的收集与分析怎么做/发稿平台
  • 做网站的公司 苏迪/东莞网络营销推广软件
  • 住房和城乡建设部科技网站首页/出售网站平台
  • 代充网站怎么做/美国搜索引擎浏览器
  • 自己的服务器如何给网站备案/seo的优化原理
  • 扫码支付个人商城网站开发免费/微信营销软件哪个好用
  • 七牛云wordpress加速/seo优化多少钱
  • 网站后台多附件上传/app推广策略
  • 浙江广厦建设职业技术学院招生网站/杭州网站设计公司
  • 塘沽集团网站建设/郑州手机网站建设
  • pc28预测网站多少做/产品宣传方案
  • 网站建设企业网站界面设计/昆明百度推广优化
  • 电脑做ppt如何插入网站/推广普通话文字内容
  • mvc5 网站开发之美/网站建设公司哪家好?
  • wordpress建站图片效果/磁力蜘蛛
  • 党支部建设网站/软文广告属于什么营销
  • 武汉建网公司网站建设/网站建设公司
  • 做网站价格差异很大/百度推广客户端怎么登陆
  • 腾讯做电脑吃鸡网站/注册网站流程和费用
  • 人才网站/西地那非片的功能主治
  • 怎么把在EXCEL做的查询系统做到网站上/百度提交入口网址
  • 宁波网站建设 熊掌号/长沙网站建设
  • 网页美工设计公司/排名优化服务
  • 正规接单赚佣金的app/win7优化大师官网
  • wp网站开发/上海今天最新发布会
  • 天猫购物商城/徐州seo推广
  • asp网站建设实录pdf/百度站内搜索代码
  • 什么是大型门户网站/免费网站制作教程
  • 织梦的cms哪些网站/合肥seo优化公司
  • AG32mcu通过寄存器方式操作cpld
  • 在线免费的AI文本转语音工具TTSMaker介绍
  • OpenGL 坐标变换
  • android APT技术
  • DeepCompare文件深度对比软件:专业级文件对比操作全解析
  • 企业微信API接口发消息实战:从0到1的技术突破之旅