private async void adresStrony_KeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Return) { buttonZnajdz.IsEnabled = false; // Pobierz asynchronicznie listę wyników ListaPlikow lista = await Rob(adresStrony.Text); // Usuń stare wyniki. listaPlikow.Clear(); // Komunikat o ewentualnym braku wyników if (lista.Count == 0) { MessageBox.Show("Brak rezultatów"); } else { // Uaktywnij przycisk pobierania wszystkich pobierzWszystkie.IsEnabled = true; // Skopiuj wynik do listy wyświetlanej przez program foreach (Plik p in lista) { listaPlikow.Add(p); } } buttonZnajdz.IsEnabled = true; } }
/// <summary> /// Zadanie uruchomienia głównych funkcji programu /// </summary> private Task <ListaPlikow> Rob(string adresStrony) { // Zwróć asynchronicznie listę plików return(Task <ListaPlikow> .Factory.StartNew(() => { ListaPlikow lista = new ListaPlikow(); try { // Przetwórz daną stronę internetową Website website = new Website(adresStrony); // Dodaj znalezione adresy plików do listy lista.Dodaj(website.Matches); } catch (Exception ex) { MessageBox.Show("Rób: " + ex.Message); } return lista; })); }