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

西宁招聘网站开发外贸网站开发多少钱

西宁招聘网站开发,外贸网站开发多少钱,wordpress diy插件,做网站制作利润有多少1. BackgroundWorker 组件概述 许多经常执行的操作可能需要很长的执行时间。 例如: 图像下载 Web 服务调用 文件下载和上载(包括点对点应用程序) 复杂的本地计算 数据库事务 本地磁盘访问(相对于内存访问来说其速度很慢&…

1. BackgroundWorker 组件概述

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

  • 图像下载

  • Web 服务调用

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

  • 复杂的本地计算

  • 数据库事务

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


        此类操作可能会导致用户界面在运行时进行阻止。 如果你需要能进行响应的 UI,而且面临与这类操作相关的长时间延迟,BackgroundWorker 组件可以提供一种方便的解决方案。

        使用 BackgroundWorker 组件,你可以在不同于应用程序的主 UI 线程的另一线程上异步(“在后台”)执行耗时的操作。 若要使用 BackgroundWorker,只需要告诉该组件要在后台执行的耗时的辅助方法,然后调用 RunWorkerAsync 方法。 在辅助方法以异步方式运行的同时,你的调用线程将继续正常运行。 该方法运行完毕后,BackgroundWorker 通过引发 RunWorkerCompleted 事件(可选择包含操作结果)可向调用线程发出警报。

        BackgroundWorker 组件可通过“工具箱”的“组件”选项卡获得。要将 BackgroundWorker 添加到窗体,请将 BackgroundWorker 组件拖到你的窗体上。 该组件出现在组件栏中,而其属性将显示在“属性”窗口中。

        若要启动异步操作,请使用 RunWorkerAsync 方法。 RunWorkerAsync 采用一个可选 object 参数,该参数可用于将变量传递给辅助方法。 BackgroundWorker 类公开 DoWork 事件,你的辅助线程通过 DoWork 事件处理程序附加到该事件。

        DoWork 事件处理程序采用一个 DoWorkEventArgs 参数,该参数具有 Argument 属性。 此属性接收来自 RunWorkerAsync 的参数,并可以传递给 DoWork 事件处理程序中调用的辅助方法。 以下示例显示了如何分配名为 ComputeFibonacci 的辅助方法的结果。 它是一个更大示例的一部分,可以在如何:实现使用后台操作的窗体中找到该示例。

// This event handler is where the actual,
// potentially time-consuming work is done.
private void backgroundWorker1_DoWork(object sender,DoWorkEventArgs e)
{// Get the BackgroundWorker that raised this event.BackgroundWorker worker = sender as BackgroundWorker;// Assign the result of the computation// to the Result property of the DoWorkEventArgs// object. This is will be available to the// RunWorkerCompleted eventhandler.e.Result = ComputeFibonacci((int)e.Argument, worker, e);
}

2.示例 

using System;
using System.ComponentModel;
using System.Windows.Forms;namespace BackgroundWorkerExample
{public partial class Form1 : Form{private BackgroundWorker backgroundWorker = new BackgroundWorker();public Form1(){InitializeComponent();// 配置 BackgroundWorkerbackgroundWorker.WorkerReportsProgress = false; // 如果不需要报告进度,设置为 falsebackgroundWorker.WorkerSupportsCancellation = false; // 如果不需要取消操作,设置为 falsebackgroundWorker.DoWork += new DoWorkEventHandler(backgroundWorker_DoWork);backgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(backgroundWorker_RunWorkerCompleted);}private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e){// 在这里执行耗时的操作,例如计算斐波那契数列int n = (int)e.Argument; // 获取从 RunWorkerAsync 传递的参数int result = ComputeFibonacci(n);e.Result = result; // 将结果存储在 Result 属性中}private int ComputeFibonacci(int n){if (n <= 1){return n;}return ComputeFibonacci(n - 1) + ComputeFibonacci(n - 2);}private void backgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e){// 操作完成后,在这里更新 UIif (e.Error != null){MessageBox.Show("操作过程中出现错误: " + e.Error.Message);}else if (e.Cancelled){MessageBox.Show("操作已取消。");}else{MessageBox.Show("斐波那契数列的第 " + ((int)backgroundWorker.Argument) + " 项是: " + e.Result);}}private void buttonStart_Click(object sender, EventArgs e){int number;if (int.TryParse(textBoxNumber.Text, out number)){backgroundWorker.Argument = number; // 设置传递给 DoWork 的参数buttonStart.Enabled = false; // 禁用按钮以避免重复点击backgroundWorker.RunWorkerAsync(); // 启动后台操作}else{MessageBox.Show("请输入一个有效的整数。");}}}
}

http://www.yayakq.cn/news/301550/

相关文章:

  • 如何引导企业老板做网站旅游网站设计图片
  • 网站建设怎么下载代码网站建设个人简历
  • 学校网站 网站建设全flash网站源码
  • 网站建设成本控制京东电子商务网站建设目的
  • 东莞手机网站模板义乌网站建设公司书生商友
  • 漳州市网站建设公司许昌网站建设科技公司
  • 网站响应速度优化门户网站是网络表达吗
  • 网站建设有哪些费用网站备案最新备案号
  • 找网站建设都需要注意哪些注册城乡规划师准考证打印时间
  • 手机架设网站网站怎么屏蔽ip访问
  • 做钉子出口哪个网站好成都网推公司
  • dedecms 把自己的网站添加进去最火的传奇手游网站
  • 有什么做兼职的好网站郑州建设企业网站找哪个公司
  • 广州设计周官方网站建设工程质量 协会网站
  • 如何选择做网站seo学习
  • 大连模板开发建站wordpress 图片集
  • 前端网站开发工具网站关键词的作用
  • 成都网站建设时代汇创东营交通信息网官网
  • 湖州网站建设方案在线设计平台代理
  • 网站建设与管理综合实践旅游网站网页设计报告
  • icp备案网站接入信息杨浦区公司网站建设
  • thinkphp可以做网站吗自己做的网站点击赚钱
  • 江油网站建设制作策划哪家专业拟一份饰品网站建设合同
  • 员工管理网站模板老旧小区改造国家最新政策
  • 城市建设最好的网站网销网站建设流程
  • 银川网站建设ctocio遂宁网站建设略奥网络
  • 尚志网络推广网站优化营销
  • 泉州市住房与城乡建设网站wordpress设置角色
  • 做图标去什么网站找wordpress关键词内链插件
  • 浙江省网站集约化建设2015做那些网站能致富