zoukankan      html  css  js  c++  java
  • 有关Backgroundworker

    Backgroundworker取消时应该用的有关代码:
    CancelAsync方法是在前台主线程用的,CancellationPending属性是在后台子线程用的。实际的使用方式应该是这样的:
    1.要取消异步操作,一般来说是在窗体中点击“取消”按钮,在“取消”按钮的单击事件中触发CancelAsync方法
    private void btn_Stop_Click(object sender, EventArgs e) 
    {
        backgroundWorker1.CancelAsync(); //提交取消命令,但还未取消
    }
    2.这时,CancellationPending由false变为true
    3.再在DoWork事件里获取CancellationPending,依据它来处理后台任务,比如说直接return;
    static void bw_DoWork(object sender, DoWorkEventArgs e)
    {            //判断是否取消操作
        if (bw.CancellationPending)
        {
            e.Cancel = true; //这里才真正取消
            return;
        }
    }
    4.最后完成时判断
    static void bw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
    {
    if (e.Cancelled)
            Console.WriteLine("You cancelled!");
        else if (e.Error != null)
            Console.WriteLine("Worker exception: " + e.Error.ToString());
        else
        {
            Console.WriteLine("Complete - " + e.Result); // 从DoWork
        }
    }
  • 相关阅读:
    SQL的update from 理解
    JS自动合并表格
    完全备份ORACLE数据库 并在另一台电脑上恢复
    cmd 连接到指定路径
    oracle 11g 64位安装sqldeveloper打开不了
    oracle 11g卸载方法
    sql的游标使用(转)
    JQEUERY案例
    sessionStorage实现note的功能
    Web Worker模拟抢票
  • 原文地址:https://www.cnblogs.com/mol1995/p/6559847.html
Copyright © 2011-2022 走看看