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?
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.
Senior Software Engineer, @Microsoft
Ada ve Ege'nin babası ;)
Makale Adedi: 484