Проблема в том, что поскольку ваша лямбда является Action<Task>
, ContinueWith возвращает Task
, и вы присваиваете ее fetchTask
, который имеет тип Task<List<NewsItem>>
. Обратите внимание: вы присваиваете переменную результат вызова ContinueWith
, а не результат вызова new Task<>
.
Если вы делаете что-то вроде этого:
var fetchTask =
new Task<List<NewsItem>>(() =>
{
List<NewsItem> items = Rss.FetchNewsItems(feed);
return items;
})
.ContinueWith<List<NewsItem>>(
x => UpdateNewsItems(x.Result),
CancellationToken.None,
TaskContinuationOptions.None,scheduler);
вы заметите, что есть проблема, потому что ваша лямбда возвращает void, но задача ожидает возврата List<NewsItem>
. Так что вы, вероятно, захотите либо вернуть это из ваших UpdateNewsItems, либо создать задачу и добавить продолжение позже.