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];
}