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>
实例.
我试图通过创建一个简单示例来了解 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>
实例.