C# 如何使用API中提供的异步方法?
作为一个简单的例子,我想展示数据库中的所有用户,API提供了异步方法C# 如何使用API中提供的异步方法?,c#,.net,asynchronous,async-await,synchronous,C#,.net,Asynchronous,Async Await,Synchronous,作为一个简单的例子,我想展示数据库中的所有用户,API提供了异步方法ShowUsersAsync() 我是否遗漏了有关async和Wait的内容 API参考: 您可以这样做: TestAsync(client).Wait(); 根据OP中提供的链接上的文档,在预期的应用程序中访问API应该是这样的 public async Task<InfluxResult<UserRow>> TestAsync() { var client = new InfluxClien
ShowUsersAsync()
我是否遗漏了有关async和Wait的内容
API参考:
您可以这样做:
TestAsync(client).Wait();
根据OP中提供的链接上的文档,在预期的应用程序中访问API应该是这样的
public async Task<InfluxResult<UserRow>> TestAsync() {
var client = new InfluxClient(new Uri("http://localhost:8086"));
var users = await client.ShowUsersAsync();
return users;
}
如果此时的目的只是测试API,那么单元测试可能是一个很好的候选者
[UnitTest]
public class InfluxClientTests {
[TestMethod]
public async Task InfluxClient_Should_Get_All_Users() {
//Arrange
var client = new InfluxClient(new Uri("http://localhost:8086"));
//Act
var users = await client.ShowUsersAsync();
//Assert
//...verify expected results.
}
}
可以在测试运行程序中运行/调试测试,并在不受控制台应用程序限制的情况下验证行为。请注意,在
Main
方法中的控制台应用程序中,async/await不好。您实际打算在何处使用api可能存在重复?因为如果它不是预期的平台,那么在控制台应用程序中使用它就不是一个好例子。另外,TestAsync
应该返回Task
。这很好。非常感谢。
public async Task<InfluxResult<UserRow>> TestAsync() {
var client = new InfluxClient(new Uri("http://localhost:8086"));
var users = await client.ShowUsersAsync();
return users;
}
var users = await TestAsync();
[UnitTest]
public class InfluxClientTests {
[TestMethod]
public async Task InfluxClient_Should_Get_All_Users() {
//Arrange
var client = new InfluxClient(new Uri("http://localhost:8086"));
//Act
var users = await client.ShowUsersAsync();
//Assert
//...verify expected results.
}
}