IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  reklamver

Etiketlenen Kullanıcılar

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 24 Mayıs 2012, 12:17   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Threads ler arasinda guvenle GUI guncellemek icin BeginInvoke kullanma




C#'ta WinForm lar ile çalışıyorum. Bir Data Modelim ve bu modele bağlı olarak GUI kısmındaki component'ların içine gelen değerleri güncelliyorum. Fakat Thread'ler çalışmaya başladığımda GUI kısmında donmalara hatta işlevsiliğe sebep olduğunu farkettim. Ihtiyacım olan GUI ile değerlerin farklı Threads'ler üzerinden birbirinden bağımsız çalışması.

Çözüm'ü biraz google araştırması ile buldum. delegate yani devredilebilir fonksiyonlar.

BeginInvoke :

PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
delegate void SetWeatherCallback String weather);

private 
void SetWeather (String weather)

if(
thisInvokeRequired)

SetWeatherCallback cb = new SetWeatherCallback (SetWeather);
this.Invoke (cb, new Object [] {"sunny"}).; 
}
else
{
textBoxWeather.Text weather
}


Farklı bir Thread çağırdığımızda, eğer this. InvokeRequired değeri true ise, GUI Thread'e erişemiyor yani birbirinden bağımsız çalışıyorlar.

Dahada açarsak,
BeginInvoke asenkron ve Invoke senkron çalışır.
Kod başka bir iş parçacığı çalıştırıldığında bu UI (ana iş parçacığı üzerinde çalıştığı) UPDATE izin verilmez. Çağırmak bir gerekiyorsa bunu tekrar güvenle UI güncelleyebilirsiniz. Ana iş parçacığı için bir invoke gereklidi bunu önce siz kontrol etmeniz gerekmektedir.

Kolay gelsin.

Turgay Can

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları eglen sohbet reklamver
Cevapla

Etiketler
arasinda, begininvoke, gui, guncellemek, guvenle, icin, kodlapaylas, kodlapaylas.com, kullanma, threads


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Threads'in adı farklı olabilirmiş SpinoZi Diğer Sosyal Ağlardan Haberler 0 09 Ocak 2024 07:06
ABD Temsilciler Meclisi Başkanı McCarthy, Biden hakkında görevi kötüye kullanma soruşturması açılması için talimat verdi CORDON BLEU Dünyadan Haberler 0 12 Eylül 2023 21:31
Threads kullanıyor musunuz? Sarya EylulFM Paylaşım 0 13 Temmuz 2023 14:16
KKTC'de erken genel seçim için oy kullanma işlemi başladı CyBeR Dünyadan Haberler 2 23 Ocak 2022 21:42
vB4 mesaj yazarını değiştirin vB4 için - Change Threads/Posts Owner/Date for NucLeuS vB 4.x Eklentileri 0 31 Temmuz 2012 20:56