Creating a task wrapper around an existing object

后端 未结 3 1124
情书的邮戳
情书的邮戳 2021-01-03 20:32

I have a method which returns a Task where the implementation may or may not need to perform a slow operation in order to retrieve the result. I would like to be able to si

3条回答
  •  长发绾君心
    2021-01-03 21:09

    You could use a TaskCompletionSource:

    var tcs = new TaskCompletionSource();
    tcs.SetResult(_Cache[key]);
    return tcs.Task;
    

    (Note that if _Cache is a Dictionary you could use TryGetValue to make it a single lookup.)

提交回复
热议问题