Ana Sayfa > C#, Programlama, VB.NET > Kısa Sınav – 2

Kısa Sınav – 2

Windows Forms projenizde, birkaç saniye süren bir işlem yaptırmanız lazım.

Kullanıcı Arayüzü (User Interface – UI), bu işlem süresince sürekli olarak güncellenmeli ve işlemin durumunu bir progressbar nesnesinde göstermeli.

Geliştirme bakımından en az uğraş ile bu görevi nasıl yerine getirirsiniz?

  • Asenkron Delegate pattern kullanırım
  • BackgroundWorker component’i kullanırım
  • Thread class’ını kullanırım
  • İşlemi başlatır, Timer nesnesi ile periyodik olarak ProgressBar’ı güncellerim

Sorunun doğru cevabı için;

BackgroundWorker component’i, Microsoft .Net framework 2.0 ile birlikte olay-tabanlı asenkron tasarım kalıbını (Event-Based Asynchronous Pattern) getirir.

Detaylı bilgi için, bakınız MSDN.

BackgroundWorker sayesinde, Windows Forms projelerinde, asenkron işlemlerin kolaylıkla yönetilmesi sağlanır. Üstelik olası cross-thread hatalarını yönetmek, delegate metot oluşturmak ve çalıştırmak gibi hamallıklarla da uğraşmak zorunda kalınmaz.

BackgroundWorker component’i, her geliştiriciye, asenkron uygulama geliştirmek için, olay ve özellik modeli’nin (event and property model) avantajlarını sunar.

Thread ve Delegate Metot kullanımı, BackgroundWorker kullanımına göre daha kolay değildir. BackgroundWorker component’i sizin için işin büyük kısmını zaten hallediyor.

Timer nesnesi ile ProgressBar’ı güncellemeye çalışmak, kullanıcı arabiriminin (User Interface – UI) kilitlenmesini önlemeyecektir.


İlgili diğer başlıklar:

  1. .Net Framework’te Timer Class’ları Arasındaki Farklar
  2. Kısa Sınav – 1
  3. Kısa Sınav – 5
  4. Kısa Sınav – 7
  5. C# ile Network Activity Monitor yazalım

  1. Ersin Gürsu
    14:15 içinde 18 Kasım 2009 | #1

    Thread Class mı ??

  2. 14:52 içinde 18 Kasım 2009 | #2

    Evet, System.Threading namespace’i altında bulunan Thread class’ı.

    Detaylı bilgi için MSDN‘de şu sayfaya bakabilirsin.

  1. Henüz geri dönüş yok.