-2

我在 VS 2008 中有这种 c++ 代码:

int x function(int a, int b){
    int var1;
    int var2;
    var1*=a;
    var2*=b;
    return a+b;
}

我怎样才能做到这一点:

int x function(int a, int b){
    thread1 {
        int var1;
        var1*=a;
    }

    thread2{
        int var2;
        var2*=b;
    }

    thread1.join();
    thread2.join();
    return a+b;
}

不创建 2 个其他功能?

4

1 回答 1

1

也许std::future是你所追求的?但我不确定它是否适用于 VS2008,但它适用于 VS2012 顺便说一句:

int Function(int a, int b)
{
  std::future<int> a1 = std::async( [a](){ return a*2; } ); 
  std::future<int> b1 = std::async( [b](){ return b*3; } );

  return a1.get() + b1.get();
}

未来的结帐参考:this

于 2013-01-07T08:44:49.617 回答