Nat*_*ath 1 c# backgroundworker
所以我有一个类在新的后台工作程序中启动一个新类,后台工作程序使用progresschanged部分传回状态消息.
当我尝试并通过键入使用它
classname.Dataworker.reportprogress(5)
Run Code Online (Sandbox Code Playgroud)
从一个单独的类我得到一个错误,我在定义之前使用一个对象.
我发现的例子都使用了一个类和不同的函数.
这可能是一个愚蠢的容易错误,但我只是看不到它,感谢您提供的任何帮助!
我的代码概述如下:
//form class
public static BackgroundWorker bw = new BackgroundWorker();
onbuttonclick
{
installer install = new installer();
bw.WorkerReportsProgress = true;
bw.WorkerSupportsCancellation = true;
bw.DoWork += class2.aFunction;
bw.ProgressChanged += new ProgressChangedEventHandler(mainForm_InstallerEvent);
bw.RunWorkerAsync();
}
private void mainForm_InstallerEvent(object sender, ProgressChangedEventArgs e)
{
lbl.Text = e.UserState.ToString();
}
Run Code Online (Sandbox Code Playgroud)
//// class2后台工作者类
aFunction
{
InstallerForm.bw.ReportProgress(5); //errors on this!
}
Run Code Online (Sandbox Code Playgroud)
如果要执行以下操作,则需要使用UserState 调用ReportProgress:
lbl.Text = e.UserState.ToString();
Run Code Online (Sandbox Code Playgroud)
然后你的电话会是这样的:
aFunction
{
InstallerForm.bw.ReportProgress(5, "5% Complete");
}
Run Code Online (Sandbox Code Playgroud)
现在看起来你的e.UserState将为null,并且调用ToString()将导致空引用异常.
以下是UserState是文本的示例.