Soran
metot bitmeden resmi gösteremiyorum

Soru
-
Merhabalar wpf ile bir resmin olayına aşağıdaki gibi basit bir kod yazdım.
Fakat metniMatriseYerlestiripSikistir çalışması uzun sürmekte ve onun çalışması bitmeden
resim.Visibility = Visibility.Visible;
satırım resmi gösterememekte.
metniMatriseYerlestiripSikistir metodu bittikten sonra resmim görünüyor.
private void btnDosyaYukle_MouseDown(object sender, MouseButtonEventArgs e) { resim.Visibility = Visibility.Visible; metniMatriseYerlestiripSikistir(txtVeri.Text, orjinalAd); }
Nasıl bir çözüm bulabilirim?
Tüm Yanıtlar
-
private void btnDosyaYukle_MouseDown(object sender, MouseButtonEventArgs e) { resim.Visibility = Visibility.Visible; Task.Run(() => metniMatriseYerlestiripSikistir(txtVeri.Text, orjinalAd)); }
şeklinde denermisiniz.e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
-
private void btnDosyaYukle_MouseDown(object sender, MouseButtonEventArgs e) { resim.Visibility = Visibility.Visible; this.Dispatcher.BeginInvoke((Action) (()=>{metniMatriseYerlestiripSikistir(txtVeri.Text, orjinalAd);})); }
Eğer kullandığınız metot herhangi bir UI nesnesine erişiyorsa yukarıdaki kullanımı tavsiye ederim. Bu sayede çapraz thread erişimi yapmamış olacaksınız.
http://dotnetpattern.com/wpf-dispatcher
- Yanıt Olarak Öneren Önay YALÇINERModerator 17 Aralık 2018 Pazartesi 08:16
- Düzenleyen Cihan YakarMVP 17 Aralık 2018 Pazartesi 08:26
-
-
-
İlginç.
İlgili metodunuz resmi gizlemiyor değil mi?
Metodu şöyle değiştirip deneyin:
private void btnDosyaYukle_MouseDown(object sender, MouseButtonEventArgs e) { resim.Visibility = Visibility.Visible; this.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Background,(Action) (()=>{metniMatriseYerlestiripSikistir(txtVeri.Text, orjinalAd);})); }