在并行执行c#.Net4.0中获取方法的返回值

Raj*_*ion 7 c# multithreading

我使用Parallel来执行具有不同输入值的单个方法,但我想获得该方法的返回值.我怎么才能得到它 ?

public class Work
{
    public static void Main()
    {

        Parallel.Invoke(() => DoWork("Raju"),
                        () => DoWork("Ramu"));
    }

    public static string DoWork(string data)
    {
        return "tesing" + data;
    }
}
Run Code Online (Sandbox Code Playgroud)

在上面的方法中我想获得DoWork的返回值.

Sim*_*son 17

只需像这样处理返回值:

string result1, result2;

Parallel.Invoke(() => result1 = DoWork("Raju"),
                () => result2 = DoWork("Ramu"));
Run Code Online (Sandbox Code Playgroud)

还要记住,无论何时并行执行某些操作,都需要小心避免数据争用和竞争条件.