[英]Background Worker ReportProgress method
ReportProgress
方法接受2個參數。 一個是int,一個是用戶狀態。 我將一些字符串參數傳遞給方法進行一些處理,並且不需要int。
有沒有辦法省略傳遞第一個int而沒有冗余來使用ReportProgress([randomInt], "MyString")
調用報告進度方法? 僅用於清潔代碼。
您可以為BackgroundWorker創建擴展方法,如下所示:
public static class BackgroundWorkerExt
{
public static void ReportProgress(this BackgroundWorker self, object state)
{
const int DUMMY_PROGRESS = 0;
self.ReportProgress(DUMMY_PROGRESS, state);
}
}
然后您將能夠執行以下操作(只要參數不是int,否則將調用正常的ReportProgress(int)
):
_backgroundWorker.ReportProgress("Test");
ReportProgress
方法需要采用int,因為它引發了ProgressChanged
事件,該事件具有參數ProgressChangedEventArgs
,該參數又具有屬性ProgressPercentage
。
簡單地將0傳遞給方法,或者像RobSiklos建議的那樣,編寫一個將調用ReportProgress
為0的擴展方法。
你可以創建一個隱藏第一個參數的擴展方法(只用0
調用實際方法)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.