最佳答案
转换/包装一个“经典”异步方法的最佳方法是什么? 这个方法使用一个回调函数来返回一个(可等待的)任务?
例如,给定以下方法:
public void GetStringFromUrl(string url, Action<string> onCompleted);
据我所知,将这个函数包装到返回任务的方法中的唯一方法是:
public Task<string> GetStringFromUrl(string url)
{
var t = new TaskCompletionSource<string>();
GetStringFromUrl(url, s => t.TrySetResult(s));
return t.Task;
}
这是唯一的办法吗?
有没有办法在任务本身中包装对 GetStringFromUrl (url,callback)的调用(也就是说,调用本身将在任务内部运行,而不是同步运行)