2016-08-17 17 views

答えて

2

ありがとうラベルのためになりProgessBar

lblpercent.Content = e.UserState as string; 

のためになります引数:引数:

worker.ReportProgress(55,"test"); 

progressbar.Value = e.PercentProgress/100.0 * progressbar.MaxValue; 
lblpercent.Content = e.UserState.ToString(); 

それともuserState

class MyUserState 
{ 
    public double Value {get;set;} 
    public string Content {get;set;} 
} 

worker.ReportProgress(55,new MyUserState { Value = 23.7, Content = "Working ..."}); 

MyUserState state = e.UserState as MyUserState; 
progressbar.Value = state.Value; 
lblpercent.Content = state.Content; 
0

経由クラス/構造体を渡す私はbackgroundWorker1_DoWorkに次のように行った:私は入れ

string [] workerResult = new string[3]; 
workerResult[0] = total.ToString(); 
orkerResult[1] = "Files Copied: " + i + "/" + filecount; 
workerResult[2] = "Size Copied: " + totalmb + "/" + totalsize + " MB"; 

backgroundWorker1_ProgressChangedへ:

string[] results = (string[])e.UserState; 
progressbar.Value = double.Parse(results[0]); 
lblcopiedfiles.Content = results[1]; 
lblsizecopied.Content = results[2]; 

に感謝あなたの助けを借りて

+1

これも機能しますが、これは以前の回答よりも実際には優れていますか?また、ニックピッキング、文字列の書式設定などは、Gui(_ProgressChanged)のタスクであり、DoWorkのタスクではありません。 –

関連する問題