小编Jos*_*eph的帖子

任务类型不能执行的c#async / await能做什么?

我是C#异步/等待功能的新手,经过研究,我认为我已经很好地理解了这些关键字想要完成的工作。但是我想到这个问题:有些事情使async / await使使用Task类型无法完成的事情成为可能?考虑以下示例:

static async Task<int> jobAsync()
{
    // I could be writing here "await someTask()"
    await Task.Delay(2000);
    return 1;
}

static async void simpleAsync()
{
    int i = await jobAsync();
    Console.WriteLine("Async done. Result: " + i.ToString());
}

static void simpleTask()
{
    var t = Task.Run(() => { 
    //I could be writing here "return someTask();"
    Thread.Sleep(2000); return 1; });
    t.ContinueWith(tsk => { Console.WriteLine("Task done. Result: " + tsk.Result); });
}
Run Code Online (Sandbox Code Playgroud)

现在,两个函数“ simpleTask()”和“ simpleAsync()”给出相同的结果,例如,如果调用Main方法:

static void Main(string[] args)
{
    simpleTask();
    //simpleAsync(); …
Run Code Online (Sandbox Code Playgroud)

c# asynchronous async-await

0
推荐指数
1
解决办法
253
查看次数

标签 统计

async-await ×1

asynchronous ×1

c# ×1