Çapraz iş parçacığı işlemi geçerli değil Hatası

  1. omrbayraktar
    6
    152
    3/6/2019 11:56:00 AM

    Çapraz iş parçacığı işlemi geçerli değil: '' denetimine oluşturulduğu iş parçacığı dışında başka bir iş parçacığından erişildi.

    Arkadaşlar richtextbox a veri eklerken bu hatayı alıyorum

     richTextBox1.AppendText(Environment.NewLine + "İşlem devam ediyor");
     richTextBox1.Refresh();
    

    Çapraz iş parçacığı işlemi geçerli değil: 'richTextBox1' denetimine oluşturulduğu iş parçacığı dışında başka bir iş parçacığından erişildi.

    Çözüm için ne yapabilirm ?

    c# .net windows-forms 2 ay önce 110 Görüntüleme
    • koraydrk textbox ına veya herhangi bir form elementine , bir thread yada bir task içinde mi veri ekliyorsun ? , muhtemelen öyle yada bir timer kullanıyorsun , yada başka bir asenkron yöntem , bunlardan biri varmı kodunda ?

    • omrbayraktar evet , task kullanıyorum , bir tane işlem çok uzun sürüyor, ekran donmasın diye , uzun süren işlemi task içine aldım , ara arada richtextboxa açıklama yazıyorum işte task içinde , taskın mı yazma yetkisi yok textboxa ?

    • Yorum Ekleyin

( 2 ) Cevap

  1. koraydrk
    6
    1759
    3/6/2019 7:24:00 PM

    Bunun en kestirme en kısa yolu sistemin / uygulamanın başladığı yere aşağıdaki kodu yazmak , Application.Run dan hemen önce yazabilirsin ;

    //çapraz thread hatalarını önlemek için yazılacak kod
    Control.CheckForIllegalCrossThreadCalls = false;
    
      Application.Run(new Form1());
    
  2. kara26
    2
    406
    4/25/2019 9:16:00 AM

    Burada da

    https://code.replyfeed.com/sorular/37/c-cross-thread-operation-not-valid-hatasi-icin-cozum

    InvokeRequired kontrolü ile eğer invoke etmek gerekli ise textbox yada listbox vb Invoke etme yöntemi var

Cevabınız