C#同步、异步编程
同步编程
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} //同步执行
private void btnExcu_Click(object sender, EventArgs e)
{
lab1.Text = add(,).ToString();
lab2.Text = jianf(, ).ToString();
} private int add(int a,int b)
{
return a + b; } private int jianf(int a,int b)
{
//调用thread类中的Sleep()方法来给方法2延迟5000毫秒
System.Threading.Thread.Sleep();
return a * b; }
效果如下:

代码分析:
当我点击同步显示的时候,由于方法2延迟了5000毫秒,所有label1和label2会等待5000毫秒后在一同显示,其他的按钮点之没有反应。
异步显示 public partial class Form1 : Form
{
//【1】定义委托
public delegate int adddelegate(int a,int b);
public Form1()
{
InitializeComponent();
} //同步执行
private void btnExcu_Click(object sender, EventArgs e)
{
lab1.Text = add(,).ToString();
lab2.Text = jianf(, ).ToString();
}
//【2】根据委托定义委托方法
private int add(int a,int b)
{
return a + b; } private int jianf(int a,int b)
{
//调用thread类中的Sleep()方法来给方法2延迟5000毫秒
System.Threading.Thread.Sleep();
return a * b; } //【3】异步调用
private void btnExcu2_Click(object sender, EventArgs e)
{
//通过委托异步调用方法
//委托类型的BeginInvoke(输入和输出变量)
//第一个参数10 表示委托方法的实参。
//第二个参数Callback:回调函数,表示异步调用后自动调用的函数
//第三个参数AsyncState:用户向回调函数提供参数信息
//返回值:IAsyncResult:异步操作状态接口,封装了异步执行的参数 //创建委托变量,并指向方法
adddelegate my = jianf;
//异步调用任务 需要用到接口IAsyncResult
IAsyncResult resul = my.BeginInvoke(,,null,null);
this.lab1.Text = "正在计算,请稍等..."; //同时执行其他任务
this.lab2.Text = add(,).ToString();
//获取异步执行的结果 EndInvoke返回一个int类型 参数是接口
//委托类型的EndInvoke()方法:借助于IAsyncResult接口对象,不断的查询异步调用是否结束。
int re= my.EndInvoke(resul);
this.lab1.Text = re.ToString(); }
}

C#同步、异步编程的更多相关文章
- .Net Core WebAPI 基于Task的同步&异步编程快速入门
.Net Core WebAPI 基于Task的同步&异步编程快速入门 Task.Result async & await 总结 并行任务(Task)以及基于Task的异步编程(asy ...
- JS中的同步异步编程
首先我们先看看同步与异步的定义,及浏览器的执行机制,方便我们更好地理解同步异步编程. 浏览器是多线程的,JS是单线程的(浏览器只分配一个线程来执行JS) 进程大线程小:一个进程中包含多个线程,例如 ...
- .Net异步编程知多少
1. 引言 最近在学习Abp框架,发现Abp框架的很多Api都提供了同步异步两种写法.异步编程说起来,大家可能都会说异步编程性能好.但好在哪里,引入了什么问题,以及如何使用,想必也未必能答的上来. 自 ...
- .Net异步编程 z
1. 引言 最近在学习Abp框架,发现Abp框架的很多Api都提供了同步异步两种写法.异步编程说起来,大家可能都会说异步编程性能好.但好在哪里,引入了什么问题,以及如何使用,想必也未必能答的上来. 自 ...
- [.NET] 怎样使用 async & await 一步步将同步代码转换为异步编程
怎样使用 async & await 一步步将同步代码转换为异步编程 [博主]反骨仔 [出处]http://www.cnblogs.com/liqingwen/p/6079707.html ...
- 【转】C#异步编程及其同步机制
C#异步编程及其同步机制 本篇文章涵盖一下几部分内容: 1. 什么是异步编程,为什么会需要异步编程 2. .NET下的异步编程及其发展 3. .NET线程同步机制及线程间数据封送 4. 异步模式 5. ...
- C#异步编程(async and await)及异步方法同步调用
1.什么是异步? 异步操作通常用于执行完成时间可能较长的任务,如打开大文件.连接远程计算机或查询数据库=异步操作在主应用程序线程以外的线程中执行.应用程序调用方法异步执行某个操作时,应用程序可在异步方 ...
- Python并发编程之同步\异步and阻塞\非阻塞
一.什么是进程 进程: 正在进行的一个过程或者说一个任务.而负责执行任务则是cpu. 进程和程序的区别: 程序仅仅只是一堆代码而已,而进程指的是程序的运行过程. 需要强调的是:同一个程序执行两次,那也 ...
- linux基础编程:IO模型:阻塞/非阻塞/IO复用 同步/异步 Select/Epoll/AIO(转载)
IO概念 Linux的内核将所有外部设备都可以看做一个文件来操作.那么我们对与外部设备的操作都可以看做对文件进行操作.我们对一个文件的读写,都通过调用内核提供的系统调用:内核给我们返回一个file ...
- C#:异步编程和线程的使用(.NET 4.5 ),异步方法改为同步执行
摘自:http://www.codeproject.com/Articles/996857/Asynchronous-programming-and-Threading-in-Csharp-N(葡萄城 ...
随机推荐
- J - Judge(快速幂)(同余定理)
J - Judge Time Limit:1000MS Memory Limit:131072KB 64bit IO Format:%lld & %llu Submit S ...
- html页面pc显示正常,在手机端适配也可以看整个页面
<meta name="viewport" content="width=1250,initial-scale=0,maximum-scale=2"/&g ...
- IE 8-不支持 placeholder 解决方法
;!function fixPlaceholder() { var hasPlaceholder = 'placeholder' in document.createElement('input'); ...
- [Objective-C语言教程]Posing(29)
Posing,顾名思义,意思是“冒充”,它跟categories类似,但本质上不一样,Posing存在的目的在于子类可以冒充父类,使得后续的代码无需把父类修改为子类,就可以很方便的让父类表现成子类的行 ...
- [Swift]遍历字符串
Swift中无法再使用传统形式的for循环. //传统for循环形式不适用于Swift for(单次表达式;条件表达式;末尾循环体){中间循环体:} 字符串遍历方法1:使用该indices属性可以访问 ...
- Parallelism VS Concurrency
 一个电脑/手机 有很多核,每一个核上运行一个任务,叫做 Parallelism. 只有一个核,通过任务调度,也可以实现 Concurrency.
- 43.oracle同义词
不愿长大,好多人如此,其实这是一种逃避责任没有担当的表象. 同义词 从字面上理解就是别名的意思,和视图的功能类似,就是一张映射关系. 私有同义词:一般是普通用户自己建立的同义词,创建者需要create ...
- 新手入门贴之基于 python 语言的接口自动化 demo 小实战
大家好,我是正在学习接口测试的菜鸟.近期通过自己的学习,完成了一个关于测试接口的接口自动化demo.下面想跟大家分享一下,主要的思路是根据接口文档确定测试用例,并将测试用例写在excel中.因为只是小 ...
- #.NET# DataGrid显示大量数据——DataGridView虚模式
要解决的目标:如何让 Datagridview 快速平滑显示大量数据 通常,Winform 下的表格控件是很"低效"的,如 DataGrid 和 DataGridView.造成低效 ...
- [转] spark-submit 提交任务及参数说明
[From] https://www.cnblogs.com/weiweifeng/p/8073553.html#undefined spark-submit 可以提交任务到 spark 集群执行,也 ...