using System;
using System.Collections.Generic;
using System.Text;
namespace 异步编程
{
class Program
{
//声明委托
public delegate void AsyncEventHandler();
//异步方法
void Event1()
{
Console.WriteLine("Event1 Start");
System.Threading.Thread.Sleep(1/10);
Console.WriteLine("Event1 End");
}
// 同步方法
void Event2()
{
Console.WriteLine("Event2 Start");
int i = 1;
while (i < 100)
{
i = i + 1;
Console.WriteLine("Event2 " + i.ToString());
}
Console.WriteLine("Event2 End");
}
static void Main(string[] args)
{
long start = 0;
long end = 0;
Program c = new Program();
Console.WriteLine("ready");
start = DateTime.Now.Ticks;
//实例委托
AsyncEventHandler asy = new AsyncEventHandler(c.Event1);
//异步调用开始,没有回调函数和AsyncState,都为null
IAsyncResult ia = asy.BeginInvoke(null, null);
//同步开始,
c.Event2();
//异步结束,若没有结束,一直阻塞到调用完成,在此返回该函数的return,若有返回值。
asy.EndInvoke(ia);
//都同步的情况。
//c.Event1();
//c.Event2();
end = DateTime.Now.Ticks;
Console.WriteLine("时间刻度差=" + Convert.ToString(end - start));
Console.ReadLine();
}
}
}
分享到:
相关推荐
winfrom 实现异步操作,C#实现异步,具体实现请看代码吧
C#实现异步的进度条操作,学会了这个操作,基本上会对界面多线程方面的知识有所了解!
异步加载大尺寸图像文件,如何使用pictureBox的异步方法和事件实现异步操作, //浏览图像 OpenFileDialog MyDlg=new OpenFileDialog(); MyDlg.Filter = "图像文件(JPeg, Gif, Bmp, etc.)|*.jpg;*.jpeg;*.gif;*.bmp...
使用C#调用传统32位API实现串口操作,整个结构特别的简单,完整代码,下载即可使用!
BackgroundWorker实现WinForm异步操作的例子
主要为大家详细介绍了C#简单实现异步操作的方法,通过BeginInvoke、EndInvoke的方式实现异步编程,感兴趣的小伙伴们可以参考一下
Winform实现多线程异步更新UI(进度及状态信息),简单易懂!可实现动作完成后的追加操作。
winform 窗体应用程序 实现异步操作 多线程 对系统文件查询 和 删除 winform 多线程 异步 文件操作(查询、删除) 实例 代码 textbox ComboBox label c#
最近在我参与的几个.Net项目中都有用到异步编程,作为一名.Net小白,很...在C#语言中,主要是通过委托来实现异步编程的,在委托类型中定义了两个方法BeginInvoke()和EndInvoke()。 /// /// 开始执行异步操作. /// /
扩展DirectoryInfo类,使其支持各种强大的文件夹操作
本文实例讲述了C#实现异步连接Sql Server数据库的方法。分享给大家供大家参考。具体分析如下: .net最新版提供了await方法,可以使我们可以很容易实现到数据库的异步连接 代码如下:readonly string ...
C#实现socket简单异步监控操作,服务器记录登陆的客户端站点
本程序详细介绍了线程和线程池的用法,使用多线程进行和异步编程实现数据库操作和日志的记录
Winform做的等待窗口,有半透明效果,可以异步暂停和取消。
主要介绍了C#实现异步发送邮件的方法,涉及C#异步操作与邮件发送的技巧,非常具有实用价值,需要的朋友可以参考下
子线程的计算结果 要更新到界面中,怎么更新呢,因为不能操作主线程 ,所以要用委托来实现 。 我们来看个例子。 场景 界面上一个按钮加一人richbox , 点击以后获得当前所在年份 代码实现 定义一个委托实现子线程...
鉴于MySQL数据库的流行与强大,决定多学习...同时实现了数据库查询,BindingSource绑定控件、BindingNavigator导航控件绑定,批量数据使用BackgroundWorking异步导入功能,及进度条动态显示数据库批量操作进度等功能。
IsBusy——指示 BackgroundWorker 是否正在运行异步操作 WorkerReportsProgress——该值指示 BackgroundWorker 能否报告进度更新 WorkerSupportsCancellation——该值指示 BackgroundWorker 是否支持异步取消 还有...
用C#语言来实现FTP上传、下载功能。还支持同步异步来操作。简单实用