2013-05-27 17 views
6

ReportProgress yöntemi 2 parametreyi alır. Bir int ve bir kullanıcı durumu. Bazı dize parametrelerini bazı işlem yapma yöntemlerine aktarıyorum ve int'ye gerek yok.Arkaplan Çalışanı RaporuProgress yöntemi

ReportProgress([randomInt], "MyString") ile rapor ilerleme yöntemini çağırmak için artıklık olmadan ilk int geçirmeyi atlamanın bir yolu var mı? Sadece kod temizleme amaçlı.

İlk parametre gizler bir uzantısı yöntemi oluşturabilirsiniz
+1

Hayır, j: (parametre aksi Normal ReportProgress(int) adı verilecek bir int dEĞİL olduğu sürece) Sonra aşağıdaki işlemleri yapmak mümkün olacak ust pass 0 veya isterseniz 'dummyProgress' denilen bir const. :) –

+1

Bir geçersiz kılma yöntemi gibi oluşturmanın bir yolu var mı? Bu "işe yaramaz parametre" şey beni biraz rahatsız ediyor =) –

+0

Haha tamam bana bir saniye ver. :) –

cevap

4

ile ReportProgress arayacak bir uzantısı yöntem yazmak, yönteme 0 başarılı veya

_backgroundWorker.ReportProgress("Test"); 
1

ReportProgress yöntemi bir parametresi vardır ProgressChanged olayı, yükseltir, çünkü bir int atması gereken

+0

Uzantı yöntemini nasıl oluşturursunuz? –

2

(sadece 0 gerçek yöntemini çağırır) Sırasıyla ProgressPercentage bir özelliğe sahip olan ProgressChangedEventArgs.

public static class BackgroundWorkerExt 
{ 
    public static void ReportProgress(this BackgroundWorker self, object state) 
    { 
     const int DUMMY_PROGRESS = 0; 
     self.ReportProgress(DUMMY_PROGRESS, state); 
    } 
} 

:

Basitçe RobSiklos anlaşılacağı gibi, sen şöyle BackgroundWorker için bir uzantısı yöntemi oluşturabilirsiniz 0.