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.

blog comments powered by Disqus

Engin Polat hakkında

Chief Architect, Microsoft RD, Microsoft MVP

Ada ve Ege'nin babası ;)

Kategoriler

İstatistik

Makale Adedi: 452

Creative Commons Lisansı