异步/等待简单的例子

use*_*962 4 c# asynchronous async-await

我试图通过创建一个简单的例子来理解async/await的基础知识.我使用Sqlite与Async连接,我有一个这样的类:

public class User
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

现在让我们说我要保存User到我的UserTable,当保存完成后,我希望检索它.

public async ? SaveToDb()
        {
            _conn.CreateTableAsync<User>();
            await _conn.InsertAsync(new User(){Id=1, Name = "Bill"});

            //Code that waits for the save to complete and then retrieves the user
        }
Run Code Online (Sandbox Code Playgroud)

我怀疑我需要某个任务,但我不完全确定如何做到这一点.谢谢

Llo*_*oyd 7

你已经在那里了.

返回时void:

public async Task SomethingAsync()
{
    await DoSomethingAsync();
}
Run Code Online (Sandbox Code Playgroud)

返回结果时:

public async Task<string> SomethingAsync()
{
    return await DoSomethingAsync();
}
Run Code Online (Sandbox Code Playgroud)

在异步方法中返回值时要注意的是返回内部类型(即在本例中string)而不是Task<string>实例.