您的位置:首页 > 编程语言 > C#

C# 异步编程:async和await (2)

2017-03-02 14:30 561 查看
以下内容主要来自于C#并发编程经典实例:为读书的一些记录和练习。

1、在异步中等待一段的时间

Task.Delay(timeSpan);


2、报告进度

static  void Main(string[] args)
{
CallMyMethodAsyc();
Console.WriteLine("Main End");
Console.Read();
}

static async Task MyMethodAsync(IProgress<double> progress = null)
{
double percentComplate = 0;
while (percentComplate < 100)
{
await Task.Run(() =>
{
Task.Delay(TimeSpan.FromMilliseconds(10));
});
percentComplate += 2;
if (progress != null)
{
progress.Report(percentComplate);
}
}
}

static async Task CallMyMethodAsyc()
{
var progress = new Progress<double>();
progress.ProgressChanged += progress_ProgressChanged;
await MyMethodAsync(progress);
}

static void progress_ProgressChanged(object sender, double e)
{
Console.WriteLine(e);
}


等待一组任务完成或者任意一个任务完成

Task.WhenAll();
Task.WhenAny();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: