我试图通过创建一个简单的例子来理解async / await的基础知识。 我使用Sqlite与Async连接,我有一个这样的类:
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
}
我怀疑我需要某个任务,但我不完全确定如何做到这一点。谢谢
答案 0 :(得分:7)
你已经在那里了。
返回void
时:
public async Task SomethingAsync()
{
await DoSomethingAsync();
}
返回结果时:
public async Task<string> SomethingAsync()
{
return await DoSomethingAsync();
}
在异步方法中返回值时要注意的是返回内部类型(即本例string
)而不是Task<string>
实例。
答案 1 :(得分:1)
如果您的代码没有返回任何值,则签名应为此,返回Task
:
public async Task SaveToDb()
否则,您需要在此示例中的Task<T>
,string
中将返回类型指定为类型参数:
public async Task<string> SaveToDb()