簡體   English   中英

后台工作者ReportProgress方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM