如何解决.NET Core 3 Web API异步任务
我有一个调用Microsoft Graph API的类。发生的是,一个异步任务完成了,但是主线程“丢失”了与该线程的连接。
API控制器操作:
[Route("~/api/validate")]
[HttpGet]
public async Task<ObjectResult> GetAsync()
{
ObjectResult response;
try
{
List<KeyValuePair<string,string>> settings = DMSConfiguration.getOneDriveSettings(this.uow);
string[] scopes = "User.Read;Files.ReadWriteAll;Files.ReadWriteAppFolder".Split(';');
// Initialize the auth provider with values from appsettings.json
var authProvider = new OneDriveDeviceCodeAuthProvider(settings.Where(x => x.Key == "clientId").Select(x => x.Value).First(),scopes);
// Request a token to sign in the user
var testToken = await authProvider.GetTokenForGraph();
}
catch(Exception ex)
{
}
return response;
}
然后在另一个类上使用该方法:
public async Task<AuthenticationResult> GetTokenForGraph()
{
var result = _msalClient.AcquireTokenWithDeviceCode(_scopes,callback =>
{
Console.WriteLine(callback.Message);
return Task.FromResult(0);
}).ExecuteAsync().ConfigureAwait(false);
return await result;
}
以某种方式,线程不等待回调函数的回答。 我在这里想念什么?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。