2011-06-24 2 views
3

Я хочу показать прогресс от BackgroundWorker до ProgressBar в пользовательском интерфейсе. Я не понимаю, почему функция BackgroundWorkerReportProgress принимает Int32, когда ProgressBar может принимать значение double для прогресса. Мой процесс очень сложный, и мне нужно сделать десятичные обновления. Это не помогает, если мне нужно постоянно корректировать все до ближайшего целого числа. Может ли кто-нибудь предложить, чтобы я мог обойти это?C# BackgroundWorker ReportProgress Int32?

+0

Это Int32, но он также ограничен диапазоном 0..100 (%). Но это направлено на «разрешение» Пользователя, этого должно быть достаточно. –

ответ

4

ProgressChangedEventArgs Class может принимать необязательное значение UserState. Вы можете передать все, что хотите, (включая, например, двойное значение). Установите его с ReportProgress method

+0

отлично! .. спасибо! – Aks

2

ReportProgress также имеет второй вариант, где он принимает объект в качестве дополнительного параметра:

public void ReportProgress(
    int percentProgress, 
    Object userState 
) 

Просто передать свой double как объект userState.

На стороне примечания: вы уверены, что ваш индикатор прогресса имеет столько пикселей, что вам нужен double, чтобы перечислить их все?

+0

Спасибо. на стороне примечание: аххх ... интересно ... Я должен подумать об этом .. – Aks

Смежные вопросы