Имеется метод, который внутри себя запускает дважды другой метод, но второй раз асинхронно. И вот внутри Task не срабатывает SaveToDB().. Подскажите, пожалуйста в чём моя ошибка
public IEnumerable<UserFeedPrerender> GetFeedPrerenders(int userId, FilterPaging paging)
{
var feedPrerenders = PreRenderFeed(userId, paging);
Task.Run(() =>
{
var fullPrerenders = PreRenderFeed(userId, null);
SaveToDB(fullPrerenders, userId);
});
return feedPrerenders;
}
public async void SaveToDB(IEnumerable<UserFeedPrerender> userFeedPrerenderElements, int userId)
{
await Task.Run(() => SaveSelectedElementsToDB(userFeedPrerenderElements, userId));
}
Предположу, что вам надо что то вроде этого
public async Task<IEnumerable<UserFeedPrerender>> GetFeedPrerenders(int userId, FilterPaging paging)
{
var feedPrerenders = PreRenderFeed(userId, paging);
await Task.Run(() =>
{
var fullPrerenders = PreRenderFeed(userId, null);
SaveSelectedElementsToDB(fullPrerenders, userId);
});
return feedPrerenders;
}
Вариант без асинхронного ожидания (в случае, если вас не волнует ни статус выполнения задачи, ни потенциально возникающие исключения в ней)
public IEnumerable<UserFeedPrerender> GetFeedPrerenders(int userId, FilterPaging paging)
{
var feedPrerenders = PreRenderFeed(userId, paging);
Task.Run(() =>
{
var fullPrerenders = PreRenderFeed(userId, null);
SaveSelectedElementsToDB(fullPrerenders, userId);
});
return feedPrerenders;
}
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости