Chciałbym użyć platformy Task w .NET, aby zaplanować coś do uruchomienia w innym wątku, a następnie po zakończeniu operacji, aby zaktualizować interfejs użytkownika w wątku UI. (Nie grałem z nim jeszcze dużo, więc nie jest to bardzo znajomo.)C# Task.ContinueWith issues
Oto kod:
Task<List<NewsItem>> fetchTask = new Task<List<NewsItem>>(() =>
{
List<NewsItem> items = Rss.FetchNewsItems(feed);
return items;
}).ContinueWith(x => UpdateNewsItems(x.Result),CancellationToken.None,TaskContinuationOptions.None,scheduler);
private void UpdateNewsItems(List<NewsItem> items)
{
...
}
nie można niejawnie przekonwertować typu „System.Threading.Tasks.Task” do 'System.Threading.Tasks.Task < System.Collections.Generic.List <Spark.Models.NewsItem> >'. Wyraźne konwersji istnieje
Pomyślałem, że jeśli mogę użyć rodzajowy podpis listy <NewsItem> na zadaniu, że Task.Result wróci ten typ tak mogę przekazać go do mojej metody ... Co robię źle tutaj?
async/await może łatwo rozwiązać ten problem. –
Tak, nie było, kiedy to pisałem. – Kelly