我的 GUI 类中有一个后台工作者。
private void bw_DoWork(object sender, DoWorkEventArgs e)
{
ProgressClass obj = new ProgressClass();
Importer tradeImporter = e.Argument as Importer;
BackgroundWorker worker = sender as BackgroundWorker;
List<TradeUploadInfo> list = obj.AllocateTrades2(tradeImporter, false);
e.Result = list; //Passes the list for processing
}
Importer是我自己的班级。现在AllocateTrades2
方法中完成了所有处理。
我的问题是,我将如何执行bw.ProgressReport
在 - 的里面AllocateTrades2
方法,它位于不同的类中,而不将 bw 作为参数传递?
如果有人向我解释如何处理事件,但如果有另一种优雅的方式,那就太好了。我对想法持开放态度。
如果您不想传递整个 BGW(理所当然),以免暴露超出其需要知道的内容,一种选择是仅传递您分配的委托ReportProgress
拨电至。
调整签名AllocateTrades2
to be:
public List<TradeUploadInfo> AllocateTrades2(
Importer importer, bool flag, Action<int> reportProgress)
调用reportProgress
从该方法中适当地委托。
然后将调用调整为AllocateTrades2
像这样:
obj.AllocateTrades2(tradeImporter, false,
progress => worker.ReportProgress(progress));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)