如果我有一个后台 worker 在它的工作中做一些任务
String val= getVal("Val");
byte[] b = (byte[])e.Argument;
b = getData.FromPlace(val);
如何将 b 的 vakue 传递给 runworkercompleted 方法?
最佳答案
你可以使用闭包
void Main()
{
var bw = new BackgroundWorker();
byte[] b;
bw.DoWork += (sender, args) => {
b = DoStuff();
};
}
byte[] DoStuff() {
String val= getVal("Val");
byte[] b = (byte[])e.Argument;
b = getData.FromPlace(val);
return b;
}
您还可以在事件参数对象上使用 return Result 属性。我认为这种方式提供了更大的灵 active 。
void Main()
{
var bw = new BackgroundWorker();
bw.DoWork += (sender, args) => {
args.Result = DoStuff();
};
bw.RunWorkerCompleted += (sender, args) => {
var result = args.Result as byte[];
};
bw.RunWorkerAsync();
}
byte[] DoStuff() {
return new byte[10];
}
关于c# - 设置 RunWorkerCompleted 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5499657/