Пожалуйста, взгляните на следующие два метода. Первая функция GetQuoteImageContent вызывает GetFileHeadersByDirectory, чтобы вернуть список объектов FileVM. Однако, если я вернуть первую функцию с:Использование ConfigureAwait
return await fileTasks.GetFileHeadersByDirectory(imageLibraryDirectory, false,
"/quotecontents/").ConfigureAwait(false);
то он работает нормально, но потому, что мне нужно сделать некоторую обработку возвращаемого значения так, когда я пытаюсь присвоить его переменной:
IEnumerable<FileVM> images = await fileTasks.GetFileHeadersByDirectory(
imageLibraryDirectory, false,
"/quotecontents/").ConfigureAwait(false);
он выпадает из функции, не возвращая ничего. Может кто-нибудь указать на ошибку в моем механизме вызова? В конце концов, я хочу заполучить сборник IEnumerable < FileVM>, чтобы обработать его. Любая помощь в этом отношении очень ценится.
public async Task<IEnumerable<FileVM>> GetQuoteImageContent(string quoteId)
{
IFileTasks fileTasks = new FileTasks();
string imageLibraryDirectory = string.Format("quotecontents/{0}", quoteId.Split('/')[1]);
IEnumerable<FileVM> images = await fileTasks.GetFileHeadersByDirectory(imageLibraryDirectory, false, "/quotecontents/").ConfigureAwait(false);
return images;
}
// This is 2nd async method which queries database to return list of files
public async Task<IEnumerable<FileVM>> GetFileHeadersByDirectory(string directory, bool recursive, string rootDirectory = "")
{
using (var fileSession = TasksManager.CreateTemporaryFSSession())
{
var fileQuery = fileSession.Query().OnDirectory(directory, recursive);
var fileHeaders = await fileQuery.ToListAsync().ConfigureAwait(false);
var fileVMs = ConvertToFileVM(fileHeaders, rootDirectory);
return fileVMs;
}
}
* он выпадает из функции, не возвращая ничего. * Что это значит? Если вы имеете в виду, что метод возвращает управление выполнением вызова вызывающему методу, то это то, что он должен делать. –
Элемент управления возвращается в точку, откуда я вызываю GetQuoteImageContent –
Так работает 'await'. Он вернется обратно к 'GetQuoteImageContent', как только он завершит выполнение асинхронного метода (продолжит его продолжение). –