我正在向我的dll添加一个后台工作进程,以便将进度报告给gui。我有以下问题
我收到以下错误信息:
严重级代码描述项目文件行抑制状态 错误CS0120非静态字段,方法或属性'Program.slate_ExportReportProgress(object,SlateExportContext.ProgressArgs)'SlateExportApiTest C:\ Projects \ fhsslateexport \ SlateExportApiTest \ Program.cs 24 Active
需要对象引用
这是我的实施
//update the progress to the client
public EventHandler<ProgressArgs> ReportProgress;
// Eventargs to contain information to send to the subscriber
public class ProgressArgs : EventArgs
{
public int Percentage { get; set; }
public string Message { get; set; }
}
public void TransferToSlateBackground()
{
var worker = new BackgroundWorker();
worker.DoWork += DTOBackGroundWorker;
worker.ProgressChanged += worker_ProgressChanged;
worker.RunWorkerCompleted += WorkDone;
worker.RunWorkerAsync("input");
}
public void DTOBackGroundWorker(object sender, DoWorkEventArgs e)
{
e.Result = e.Argument.Equals("input");
DTOCaseObject();
}
private void worker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
}
public void WorkDone(object sender, RunWorkerCompletedEventArgs e)
{
var result = (bool)e.Result;
}
引发ReportProgress
事件的代码是:
int step = 100 / CaseAssets.Count();
int i = 0;
// Report progress if somebody is listening (subscribed)
if (ReportProgress != null)
{
ReportProgress(this, new ProgressArgs { Percentage = i, Message = "Exporting to Slate " + caseid.ToString() });
}
但是当我从gui / console app调用代码时,我遇到了问题。
这里我连接了我的事件处理程序
_slateExport.ReportProgress += slate_ExportReportProgress;
public void slate_ExportReportProgress(object sender, ProgressArgs e)
{
}
但我收到上面的错误
修改2
我不相信这是我遇到的问题的主要问题是事件不是属性或表单控件