我有一个接口需要我实现一个(异步的)任务:
namespace Microsoft.Owin.Security.Infrastructure
{
public interface IAuthenticationTokenProvider
{
..
Task CreateAsync(AuthenticationTokenCreateContext context);
..
}
}
我想实现这个方法,但我没有等待任何东西。虽然我必须等待一些东西或返回一些任务,否则我的代码无法编译。
public class MyImplementation: IAuthenticationTokenProvider
{
public async Task CreateAsync(AuthenticationTokenCreateContext context)
{
/// do something synchronously.
await something here? ??
}
}
我的问题是:如何在不异步执行任务的情况下实现这个方法?我已经找到了一些解决方案(使用 task.Yield()
或 Task.Run(() => {}))
),但我还不能完全理解什么是正确的实现方式和原因。
CreateAsync
方法的具体内容,很难判断是否需要这样做。如果它总是很快完成,那么就没问题了,你可以只针对这段代码禁止警告。 - Jon Skeet