Просто отделите создание ваших ожиданий от фактического await
на них:
var firstWait = GetFirstListFilesAsync();
var secondWait = GetSecondListFilesAsync();
var thirdWait = GetThirdListFilesAsync();
firstList = await firstWait;
textBlock1.Text = "found " + firstList.Count + " first list's results";
secondList = await secondWait ;
textBlock2.Text = "found " + secondList.Count + " second list's results";
thirdList = await thirdWait ;
textBlock3.Text = "found " + thirdList.Count + " third list's results";
Это все еще не будет показывать результаты до тех пор, пока первый элемент не будет завершен, но позволит сделать параллельный ход. Это сложнее, если вы хотите иметь дело с каждым из , как , он завершается внутри одной функции, так как тогда вы должны WaitAny
собирать awaitables, а затем определять (вручную), какой из них ) завершены, удалите их из коллекции и зацикливайте до тех пор, пока все не закончите.
Как исправить его
Неправильно используется ваш метод getter и setter.
getstockTicker
должен быть getStockTicker
setstockTicker
должен быть setStockTicker
Некоторая справочная информация
Свойство PropertyValueFactory остается неизменным:
new PropertyValueFactory<Stock,String>("stockTicker")
Соглашение об именах будет казаться более очевидным, если вы также добавите свойство accessor к вашему классу Stock:
public class Stock {
private SimpleStringProperty stockTicker;
public Stock(String stockTicker) {
this.stockTicker = new SimpleStringProperty(stockTicker);
}
public String getStockTicker() {
return stockTicker.get();
}
public void setStockTicker(String stockticker) {
stockTicker.set(stockticker);
}
public StringProperty stockTickerProperty() {
return stockTicker;
}
}
PropertyValueFactory использует отражение для поиска соответствующих аксессуаров. Сначала он попытается использовать accessTickerProperty аксессуар, и, если нет, то отпадает назад к геттерам и сеттерам. Рекомендуется предоставить аксессуар свойств, так как вы автоматически включите свою таблицу для наблюдения за свойством в базовой модели, динамически обновляя ее в качестве базовой модели.
поместите метод Getter и Setter в ваш класс данных для всех элементов.