C# 多线程的使用
*** 多线程使用场景:
简单来说:就是用于所有需要等待的操作对于一些数据量大 或者响应慢的网络请求
多线程学习第一步- - -异步委托
委托:委托是方法的类型安全的引用
下面先了解委托中使用异步的几个方法:
1 使用的Delegate类提供的BeginInvoke方法
用户来执行异步BeginInvoke方法返回IAsyncResult。类型
2 IsCompleted 属性 用来判断当前委托是否执行结束
3 EndInvoke 方法 会一直等待 委托执行结束 返回值与委托类型相同
// 小提示 :在.NET Core中不支持Action.BeginInvoke(null, null)的委托异步调用方法。
下面请看代码
//定义委托
delegate int AsyncSumdelegate(int data,int nuber1, int nuber2);
static int AsyncSum(int data, int nubmer1,int nubmer2) //定义方法
{
Thread.Sleep(data);
return nubmer1+nubmer2;
}
//在主线程中进行调用
static void Main(string[] args)
{
AsyncSumdelegate getDelegate = AsyncSum;
IAsyncResult result = getDelegate.BeginInvoke(300,10,22,null,null);
while (!result.IsCompleted) //判断当前委托是否调用完毕
{
Console.WriteLine("正在执行");
}
Console.WriteLine(getDelegate.EndInvoke(result));
}
微信公众号
ck17118504426 一起学习 共同进步