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

时间:2015-03-23 13:49:57

标签: 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;
    }
}

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

1 个答案:

答案 0 :(得分:15)

只需像这样处理返回值:

string result1, result2;

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

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