Pytanie jak w temacie. Na zajęciach z programowania konieczne jest napisanie programu wczytującego z url obrazek, który następnie wrzuca go do kontrolki, generalnie ma to robić kilku krotnie ( w moim przypadku 3 razy). Przed i po każdym "nowym" wczytaniu obrazka ma byćwyświetlany odpowiedni komunikat. I teraz chodzi mi o to jak zmodyfikować kod aby odbywało się to asynchronicznie... Mam nadzieje że pytanie jest zrozumiałe, jestem bardzo początkującą "programistką" i staram sie jakoś sobie radzić samemu ale asynchroniczność to już dla mnie za wiele... a nie mam wystarczająco dużo czasu żeby to przećwiczyć, także proszę was bardziej doświadczonych kolegów o POMOC :).

Dodam jeszcze tylko że temat jest pilny bo muszę to umieć na jutrzejsze zajęcia także licze na szybką pomoc ;)

Oto kod odpowiedzialnyza inicjalizację okna, wyświetlenie komunikatów i wczytanie obrazu do wiersza:

  public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Window_Initialized(object sender, EventArgs e)
        {
            var container = Configuration.ConfigureApp();

            var address = container.Resolve<IAddress>();
            Grid.SetRow(address.Control, 0);
            var rdef = new RowDefinition();
            rdef.Height = new GridLength(30);
            this.Panel.RowDefinitions.Add(rdef);
            this.Panel.Children.Add(address.Control);

            // Wczytanie pierwszego
            var image = container.Resolve<IRemoteImage>();
            image.Start += new EventHandler(OnBeginLoading);
            image.Koniec += new EventHandler(OnEndLoading);
            Grid.SetRow(image.Control, 1);
            this.Panel.RowDefinitions.Add(new RowDefinition());
            this.Panel.Children.Add(image.Control);

            // drugiego
            var image2 = container.Resolve<IRemoteImage>();
            image2.Start += new EventHandler(OnBeginLoading);
            image2.Koniec += new EventHandler(OnEndLoading);
            Grid.SetRow(image2.Control, 2);
            this.Panel.RowDefinitions.Add(new RowDefinition());
            this.Panel.Children.Add(image2.Control);

            // trzeciego
            var image3 = container.Resolve<IRemoteImage>();
            image3.Start += new EventHandler(OnBeginLoading);
            image3.Koniec += new EventHandler(OnEndLoading);
            Grid.SetRow(image3.Control, 3);
            this.Panel.RowDefinitions.Add(new RowDefinition());
            this.Panel.Children.Add(image3.Control);

            this.Panel.ShowGridLines = true;
        }

        // Komunikaty okna
        private void OnEndLoading(object sender, EventArgs e)
        {
            MessageBox.Show("LOADING COMPLETED!!!");
        }

        private void OnBeginLoading(object sender, EventArgs e)
        {
            MessageBox.Show("LOADING PLEASE WAIT >>>");
        }
    }