1
如果我有一个后台工作,做在某些任务做工作设置RunWorkerCompleted值
String val= getVal("Val");
byte[] b = (byte[])e.Argument;
b = getData.FromPlace(val);
如何传递的vakue B向runworkercompleted方法?
如果我有一个后台工作,做在某些任务做工作设置RunWorkerCompleted值
String val= getVal("Val");
byte[] b = (byte[])e.Argument;
b = getData.FromPlace(val);
如何传递的vakue B向runworkercompleted方法?
您可以使用实例变量。将声明放在DoWork
事件定义的上方。
private byte[] b;
你可以使用封闭
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;
}
你也可以在参数对象的情况下使用返回结果属性。我认为这样可以提供更大的灵活性。
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];
}