none
Static Veriye Invoke Uygulama RRS feed

  • Soru

  • Merhabalar background worker ile main thread bir veriye ulaşmak istiyorum.

    private static void FirmaTeklifEkleme(Panel pnl)
            {
                temizle(pnl);
                pnl.Visible = true;
                pnl.Location = new Point(263, 0);
                pnl.Size = new Size(997, 553);
                pnl.Dock = DockStyle.Fill;
                DoğrudanTeminPeriyodikFirmaEkleme firma = new DoğrudanTeminPeriyodikFirmaEkleme();
                firma.TopLevel = false;
                firma.Dock = DockStyle.Fill;
                firma.FormBorderStyle = FormBorderStyle.None;
                pnl.Controls.Add(firma);
                firma.Show();
            }

    bu method hata veriyor.Static method invoke yapıp bu veriye nasıl ulaşabilirim ustalarım..

    22 Ekim 2019 Salı 07:15

Tüm Yanıtlar

  • sorunu bu şekil çözdüm.Hata veren kod parçasını,

     if (pnl.InvokeRequired) //Forma gelen talebin farklı bir iş parçacığından gelip gelmediği kontrol ediliyor.
                {
                    //Eğer farklı bir iş parçacığından talep gelmişse aşağıdaki Invoke metoduyla işlem gerçekleştiriliyor.
                    pnl.Invoke((MethodInvoker)delegate ()
                    {
                        pnl.Controls.Add(firma);
                    });
                }

    ancak bundan sonra panelimde yüklenen formda program donuyor bunun sebebi nedir ?


    • Düzenleyen kadirsoft 22 Ekim 2019 Salı 07:37
    22 Ekim 2019 Salı 07:36
  • Çözdüğünüze sevindim ama bunlar 10 yıldan eski yöntemler. Günümüzde async/await , TPL gibi yöntemlerle çözüyoruz bunları. İlgili anahtar sözcükleri araştırmanızı öneririm.

    www.cihanyakar.com


    22 Ekim 2019 Salı 07:44
  • Dediklerinizi araştıracağım.

    Cihan bey formların donma olayı hakkında bilgi alabilir miyim ? onu hala çözebilmiş değilim.

    22 Ekim 2019 Salı 08:06
  • Dediklerinizi araştıracağım.

    Cihan bey formların donma olayı hakkında bilgi alabilir miyim ? onu hala çözebilmiş değilim.

    Formların olduğu thread'i meşgul ediyorsunuz. Doğal olarak kullanıcıya karşı tepki verecek zaman bulamıyor. Belirttiğim konuları araştırdığınız takdirde invoke, çarpaz thread erişimi gibi konular derdiniz olmayacak.

    www.cihanyakar.com

    22 Ekim 2019 Salı 09:28