Преобразовать асинхронное лямбда-выражение в тип делегата System.Func <T>?

У меня есть асинхронный метод внутри переносимой библиотеки классов с этой подписью:

private async Task _Fetch(Uri uri)

Он извлекает ресурс, который возвращается как конкретный тип T.I '

я работаю со сторонней библиотекой кеша (Akavache) что требуетFunc в качестве одного из параметров и попытался сделать это таким образом:

await this.CacheProvider.GetOrCreateObject(key,
    async () => await _Fetch(uri), cacheExpiry);

Это приводит к ошибке:

Невозможно преобразовать асинхронное лямбда-выражение в тип делегата ''System.Func, Асинхронное лямбда-выражение может возвращаться,voidTask или жеTask, ни один из которых не может быть преобразован в ".I"System.Func

мы пробовали различные перестановкиFunc без удачи, единственный способ заставить код работать, это сделатьFunc блокировка:

await this.CacheProvider.GetOrCreateObject(key, 
    () => _Fetch(uri).Result, cacheExpiry); 

который блокирует мое приложение.

Любые указатели на то, где яя сбился с пути?

Ответы на вопрос(3)

Ваш ответ на вопрос