今天在博文 拥抱.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);