-2

私はVS2008でこの種の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();
}

将来のチェックアウトリファレンス:これ

于 2013-01-07T08:44:49.617 に答える