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 makaleler

blog comments powered by Disqus

Engin Polat hakkında

Senior Software Engineer, @Microsoft

Ada ve Ege'nin babası ;)

Kategoriler

İstatistik

Makale Adedi: 484

Creative Commons Lisansı