异步调用backgroudworker

先看一个小例子:C#客户端打开一个控件,控件中加载了好多数据大约要用5秒中,如果我们直接打开控件,那么这个控件就要5秒中才能弹出来,当然这个时候用户已经把他Kill了。这个时候我们就需要先给用户把控件UI加载出来,给出来一个假象,然后数据在后台加载就OK了。具体看一下怎么做。

首先在面板中加载一个BackgroundWorder组件,然后在加载窗体中时注册几个事件:

1.BackgroundWorder启动事件。就是加载后台5秒中代码;BackgroundWorder.DoWork事件;

2.BackgroundWorder加载中事件。这个事件可以写当前的加载进度,或者错误事件;BackgroundWorder.ProgressChanged事件;

3.BackgroundWorder结束事件。就是数据加载完毕做什么事情或者异步出错给出提示什么的,

BackgroundWorder.RunWorkerCompleted事件。

时间: 2024-12-20 20:08:45

异步调用backgroudworker的相关文章

(转)spring boot注解 [email protected] 异步调用

原文:http://www.cnblogs.com/azhqiang/p/5609615.html EnableAsync注解的意思是可以异步执行,就是开启多线程的意思.可以标注在方法.类上. 1 @Component 2 public class Task { 3 4 @Async 5 public void doTaskOne() throws Exception { 6 // 同上内容,省略 7 } 8 9 @Async 10 public void doTaskTwo() throws

CXF简单示例(二)之异步调用

在实际使用中,客户端在调用服务时,并不能及时得到响应,比如调用的服务本身是一个耗时费事的活,服务器破死命的跑,也只能在一分钟后才能够返回结果,这时候如果是同步的情况,那么客户端就必须在这里到等上一分钟,啥事不干.这肯定是不能容忍的,光吃饭不干活,再有这么好的事,请告诉我! OK,所以我们需要异步调用. 在这里,先介绍CXF提供的一个工具:WSDL2Java. 我们可以方便的利用它来生成相应的客户端接口,配置什么的脏活累活它都给我们干了,而我们只需要这样直接用就行了. 1. 获得服务的WSDL路径

spring-boot实战【10】【转】:Spring Boot中使用@Async实现异步调用

什么是"异步调用"? "异步调用"对应的是"同步调用",同步调用指程序按照定义顺序依次执行,每一行程序都必须等待上一行程序执行完成之后才能执行:异步调用指程序在顺序执行时,不等待异步调用的语句返回结果就执行后面的程序. 同步调用 下面通过一个简单示例来直观的理解什么是同步调用: 定义Task类,创建三个处理函数分别模拟三个执行任务的操作,操作消耗时间随机取(10秒内) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

简述自己用过的几种异步调用方式

直接上代码 1.BeginInvoke和EndInvoke方式 private static void BeginInvoke1() { Func<int,string> fun = Todo; for (int i = 0; i < 5; i++) { //fun.BeginInvoke(i,TodoCallBack, fun); /* 异步调用委托BeginInvoke * handler.EndInvoke(x)为执行委托的结果 */ fun.BeginInvoke(i, x =&

C#委托异步调用

废话不多说,直接上代码(PS:我就喜欢简单.直接.粗暴) using System;using System.Collections.Generic;using System.Linq;using System.Runtime.Remoting.Messaging;using System.Text;using System.Threading;using System.Threading.Tasks; namespace 异步调用委托{    class Program    {       

同步调用和异步调用同时存在导致的混乱

其实在Promise之外也存在这个问题,这里我们以一般的使用情况来考虑此问题.这个问题的本质是接收回调函数的函数,会根据具体的执行情况,可以选择是以同步还是异步的方式对回调函数进行调用.下面我们以 onReady(fn) 为例进行说明,这个函数会接收一个回调函数进行处理. mixed-onready.js function onReady(fn) { var readyState = document.readyState; if (readyState == 'interactive' ||

WCF的异步调用

1.服务契约 namespace Contracts { [ServiceContract] public interface ICalculator { [OperationContract] double Add(double x,double y); } } 2.服务实现 namespace Services { public class CalculatorService:ICalculator { public double Add(double x, double y) { retu

Axis2发布webservice(4)&mdash;webservice的异步调用

一,发布一个webservice,代码如下 package com.hoo.service; public class AsynchronousService { public String execute() throws InterruptedException{ //让当前线程睡眠5钟,展示异步调用 Thread.sleep(5000); return "done"; } } 二.发布Service,参见前面教程,不多讲 三.RPC方式异步调用: import java.io.I

C#异步调用

在有时候,我们要从一些外设备或是网络索取大量数据时,外设备可能须要处理非常久才干把传输数据回计算机,这时我们仅仅有傻傻的等待. 但我们採用异步方法就不同了,我们能够利用这点时间去做别的事,等待完毕后,再通知我们接收. 1.怎样进行异步调用 (1)定义要运行异步的方法. (2)定义一个与运行异步方法同样签名的托付. (3)实例化该托付,该托付应该指向该异步方法. (4)利用BeginInvoke启动异步方法. (5)利用EndInvoke得到结果. (6)设置回调方法.(非必需) 2.BeginI