BackgroundWorker And Delegate

alonestreet
16-10-2010, 11:55   |  #1  
alonestreet avatarı
OP Yeni Üye
Teşekkür Sayısı: 0
30 mesaj
Kayıt Tarihi:Kayıt: Nis 2008

Bilgisi olan arkadaşlar yardımcı olabilir mi?

Öncelikle yaptığım formum işlem sırasında kasılmasın takılma olmasın diye BackgroundWorker kullanıyorum. DoWork Eventine ana formum üzerinde deneme amaçlı olarak

 private void bw_DoWork(object sender, DoWorkEventArgs e) {

            TextBox txt = new TextBox();
            txt.Text = "Merhaba Dünya";
            this.Controls.Add(txt);
        }

yapıp forma ekleme yapmak istiyorum. Ancak bana Bir iş parçacığında oluşturulan denetimler, farklı bir iş parçacığındaki denetimin üst öğesi yapılamaz. uyarısını hemen yapıştırıyor. Formda zaten System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false; eklemesini  yaptım. ancak tabi eklemeye çalıştığım şey dolayısıyla diğer ana threadin alanına müdahale ediyorum.

Delegate kullanarak  eklemem gerektiğini gördüm. Ancak sorunda burdan itibaren başlıyor. ben bu delegate ile Background worker componenti ni ne kadar deneme yapıp ve ne kadar araştırma yaptıysamda bir türlü çözemedim işlem yaptırmayı, sürekli aynı cross thread hatasını veriyor.

En basit haliyle forma bir textbox ekleme işlemini form backgroundWorker ve delegate kullanarak sorunu nasıl aşabileceğimi gösterebilirmisiniz? Saygılarımla

Son Düzenleme: alonestreet ~ 29 Temmuz 2014 15:52
Ahmet BOZDOĞAN
09-03-2016, 14:43   |  #2  
Taze Üye
Teşekkür Sayısı: 0
1 mesaj
Kayıt Tarihi:Kayıt: Mar 2016

6 sene sonra bu soruyu cevaplamak bana nasip oldu =) Belki başka bir arkadaşın işini görür diye yazıyorum.

this.Invoke((MethodInvoker)delegate ()
{
            TextBox txt = new TextBox();
            txt.Text = "Merhaba Dünya";
            this.Controls.Add(txt);
});

backgroundWorker içerisine yularıdaki kod bloğunu kullanarak yaparsanız sorun çıkmayacaktır.

kazim-simsek
01-04-2016, 15:39   |  #3  
kazim-simsek avatarı
Yeni Üye
Teşekkür Sayısı: 0
34 mesaj
Kayıt Tarihi:Kayıt: Mar 2016

Emeğine Sağlık
http://www.kazimsimsek.net