Async/await 简单的例子

Async/await simple example

我试图通过创建一个简单示例来了解 async/await 的基础知识。 我使用带有异步连接的 Sqlite,我有一个像这样的 class:

public class User
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }

现在假设我想将 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
        }

我怀疑我需要某处任务,但我不完全确定如何执行此操作。谢谢

如果您的代码没有 return 任何值,签名应该是这样的,returning Task:

public async Task SaveToDb()

否则,您需要将 return 类型指定为 Task<T> 中的类型参数,string 在此示例中:

public async Task<string> SaveToDb()

你大部分时间都已经到了。

当 returning void:

public async Task SomethingAsync()
{
    await DoSomethingAsync();
}

当 return 得到一个结果时:

public async Task<string> SomethingAsync()
{
    return await DoSomethingAsync();
}

在异步方法中 returning 一个值时要注意的是你 return 内部类型(即在这种情况下 string)而不是 Task<string>实例.