Bir değişkeni (progresspercentage) "progresschanged" işlevine nasıl iletebileceğimizi anlıyorum.C# backgroundworker'da daha fazla argüman nasıl gönderilir değiştirildi etkinlik değiştirildi
worker.ReportProgress(pc,username,score);
:
backgroundWorker1.ProgressChanged += new ProgressChangedEventHandler(backgroundWorker1_ProgressChanged);
...
worker.ReportProgress(pc);
...
private void backgroundWorker1_ProgressChanged(object sender,
ProgressChangedEventArgs e)
{
this.progressBar1.Value = e.ProgressPercentage;
}
Ama bu işlev, bazı şey gibi daha fazla değişken geçmek istiyorum. ..
private void backgroundWorker1_ProgressChanged(object sender,
ProgressChangedEventArgs e)
{
this.progressBar1.Value = e.ProgressPercentage;
this.currentUser.Value = e.UserName; //as string
this.score.Value = e.UserScore; //as int
}
özür dilerim C# için yeni, birisi bana bir örnek verebilir. Eğer UserName bitiştirmek ve bir karakter ayırıcı ile Skoru ve böylece geçebilir
public void ReportProgress(int percentProgress, Object userState)
, kullanım gereksinimi içinde:
iyi bir fikir gibi görünüyor, ama nedense ben .NET Framework sürüm 4/MS Visual Studio 2010 Professional kullanarak (System.Tuple gelen özel bir sınıf türetmek) çalışmaya örnek 3 alamadım. PcUsernameScore sınıfının tanımı "error CS1729:" System.Tuple
@MarkU haklısınız, cevabı güncelledim. – Bijan
ayrıca bir tuple yerine özel bir sınıf veya struct geçirebilirsiniz – Eric