zoukankan
html css js c++ java
异步调用委托的3种方法
异步调用委托的3种方法
using
System;
using
System.Collections.Generic;
using
System.Text;
namespace
AsyncDelegate
{
class
Program
{
delegate
int
IntIntDelegate(
int
x);
//
生明一个委托
int
Square(
int
x)
{
return
x
*
x;
}
void
AsyncDelegateExample()
{
IntIntDelegate f
=
Square;
//
方法一
IAsyncResult ar1
=
f.BeginInvoke(
10
,
null
,
null
);
while
(
!
ar1.IsCompleted)
//
循环直到异步完成
Console.WriteLine(f.EndInvoke(ar1));
//
do some work
//
方法二
IAsyncResult ar2
=
f.BeginInvoke(
20
,
null
,
null
);
//
do some work
ar2.AsyncWaitHandle.WaitOne();
//
等待直到异步完成
Console.WriteLine(f.EndInvoke(ar2));
//
方法三 完成后调用回调函数,取得结束通知的结果
IAsyncResult ar3
=
f.BeginInvoke(
30
, AsyncDelegateCallback, f);
}
void
AsyncDelegateCallback(IAsyncResult ar)
//
回调函数
{
IntIntDelegate f
=
(IntIntDelegate)ar.AsyncState;
if
(ar.IsCompleted)
{
Console.WriteLine(f.EndInvoke(ar));
}
//
Console.WriteLine(f.EndInvoke(ar));
}
static
void
Main(
string
[] args)
{
Program test
=
new
Program();
test.AsyncDelegateExample();
//
客户端调用
}
}
}
输出: 100
400
900
查看全文
相关阅读:
Java
oracle与mysql(2)
oracle与mysql
junit中的assert方法总结
java Future用法和意义一句话击破
Java序列化中的SerialVersionUid
Nginx了解
现如今的CDN网站加速技术,细说CDN
slf4j日志的使用
IDEA 快捷键整理
原文地址:https://www.cnblogs.com/xiaobaigang/p/931016.html
最新文章
windows下用一台机器配置分布式redis(主从服务器)
redis随笔收藏
PHP导出数据到excel的方法
Linux下删除空文件,删除指定大小的文件
vim全选,全部复制,全部删除
PHP远程下载图片损坏问题
linux下nginx服务器域名指定目录
Flink
.Net
YAML
热门文章
SpringBoot-定时任务
Java
关于算法场景的思考
linux
C#
Java
Java
Java
Oracle
Java
Copyright © 2011-2022 走看看