私の .NET C# プロジェクトでは、「BackgroundWorker」を使用して別のクラスのメソッドを呼び出しました。以下は私のメインフォームのソースコードです
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
testClass t1 = new testClass();
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
t1.changevalue(1000);
}
private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
label1.Text += Convert.ToString(e.ProgressPercentage);
}
private void button1_Click(object sender, EventArgs e)
{
backgroundWorker1.RunWorkerAsync();
}
}
私のプロジェクトの「testClass.cs」という名前の別のクラスファイルに次のコードがあります。このクラスから BackgroundWorker に進行状況を報告して、label1 からメインに進行状況を表示できるようにします。
class testClass
{
private int val;
public int changevalue(int i)
{
for (int j = 0; j < 1000; j++)
{
val += i + j;
//from here i need to preport the backgroundworker progress
//eg; backgroundworker1.reportProgress(j);
}
return val;
}
}
しかし、「testClass」から BackgroundWorker にアクセスすることは許可されていません。
誰かがこの問題を克服する方法を教えてもらえますか?
ps-この解決策を見つけましたが、理解できません。