今天在博文 拥抱.NET Core系列:MemoryCache 初识 中第一次看到在 async 方法中使用 Task.Yield() ,代码如下:
static async Task Main(string[] args)
{
IMemoryCache memoryCache = new MemoryCache(Options.Create(new MemoryCacheOptions()));
var value = await memoryCache.GetOrCreateAsync("cache1",
async entry =>
{
await Task.Yield();
return 1;
});
Console.WriteLine(value);
Console.WriteLine(memoryCache.Get("cache1"));
}
请问上面代码中 Task.Yield()
究竟有何用处?
我觉得应该是强制这个方法体以异步方式完成
赞同楼上观点!
如果是这样的话,我直接以这种方式强制执行异步方法不可以吗?
将
await Task.Yield(); return 1;
替换成不可以吗?
await Task.FromResult(1);