MSDN 原文描述:

 

许多经常执行的操作可能需要很长的执行时间。例如:

  • 图像下载

  • Web 服务调用

  • 文件下载和上载(包括点对点应用程序)

  • 复杂的本地计算

  • 数据库事务

  • 本地磁盘访问(相对于内存访问来说其速度很慢)

类似这样的操作可能导致用户界面在操作运行时挂起。如果您需要用户界面的响应却遇到与此类操作关联的长时间延迟,BackgroundWorker 组件可以提供一种方便的解决方案。

使用 RunWorkerCompleted 事件(可选择包含操作结果)向调用线程发出警报。

“组件”选项卡的“工具箱”中提供了 “属性”窗口中。

若要启动异步操作,请使用 DoWork 事件处理程序附加到该事件。

如何:实现使用后台操作的窗体 中一个较大的示例。

 

 

 #region CODE
    public partial class Form1 : Form
    {
        BackgroundWorker worker = null;
        public Form1()
        {
            InitializeComponent();
        }

        private void simpleButton1_Click(object sender, EventArgs e)
        {
            worker = new BackgroundWorker();
            worker.DoWork += new DoWorkEventHandler(worker_DoWork);
            worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted);
            worker.RunWorkerAsync();
        }

        void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            if ((bool)e.Result)
            {
                this.lbres.Text = "Process complate";
            }
            else
            {
                this.lbres.Text = "Process Error..";
            }
        }
        bool isfirst = true;
        void worker_DoWork(object sender, DoWorkEventArgs e)
        {
            try
            {
                System.Threading.Thread.Sleep(2000);
            }
            catch
            {
                e.Result = false;
            }
        }
    }
    #endregion

 

 

相关文章:

  • 2021-12-26
  • 2022-01-28
  • 2022-12-23
  • 2022-12-23
  • 2021-11-17
  • 2022-01-08
  • 2021-05-28
猜你喜欢
  • 2022-01-18
  • 2022-01-14
  • 2021-09-16
  • 2022-12-23
  • 2022-12-23
  • 2021-07-09
相关资源
相似解决方案