如何从后台工作器 C# 返回多个结果

asd*_*kag 2 c# return backgroundworker

我的Backgroundworker从路径中检索和计算,我需要返回一个字符串数组和一个double数组。如何将它们打包在一起?我知道返回一个结果是这样的:

private void bgw_DoWork(object sender, DoWorkEventArgs e)
{
    int result = 2+2;
    e.Result = result;
}

private void bgw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
    int result = (int)e.Result;
    MessageBox.Show("Result received: " + result.ToString());
}
Run Code Online (Sandbox Code Playgroud)

我也尝试使用元组,但我的软件无法识别它,我使用的是 C# 2008 快速版。

如何将两种不同类型的数组打包在一起?

Sri*_*vel 5

创建数据传输类型。例如:

class MyResult //Name the classes and properties accordingly
{
    public string[] Strings {get; set;}
    public double[] Doubles {get; set;}
}

private void bgw_DoWork(object sender, DoWorkEventArgs e)
{
    //Do work..
    e.Result = new MyResult {Strings =..., Doubles  = ...  };
}

private void bgw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
    MyResult result = (MyResult)e.Result;
    //Do whatever with result
}
Run Code Online (Sandbox Code Playgroud)