Multithread uygulamalar ve kullanıcı arayüzünün güncellenmesi:

.NET Framework 2.0 uygulamanızda birden fazla thread ile çalıştığınızı varsayalım. Bu thread’ler çalışırken bazen NullReferenceException hatası alıyorsanız ve nedenini bulamıyorsanız, sebebi, thread’lerden birisinin kullanıcı arabirimini güncellemesi olabilir. Kullanıcı arabirimini sadece ana thread içinden güncellemeniz gerekmektedir.

Hangi thread’in neden bu hatayı aldığını bulmak için şu yöntemi deneyebilirsiniz:

Constructor’ınıza Control.CheckForIllegalCrossThreadCalls = true; ifadesini ekleyin ve uygulamanızı Visual Studio içinde debug mode’da çalıştırın. Bu sefer aynı sorunu tekrar yaşadığınız zaman, VS size hangi thread’de bu sorunla karşılaştığınızı söyleyecektir. Örnek mesaj şu şekilde olabilir:

Cross-thread operation not valid: Control 'txtUsername' accessed from a thread other than the thread it was created on.

Geçerli olduğu platformlar:

.NET 2.0

--

AMB