boost::thread
ile çalışmaya başlamak için çok basit bir örnek yazdım. Kimse benim hatama işaret edebilir mi?boost :: thread - Basit örnek çalışmıyor (C++)
İşi yapmak için çok basit bir functor türü sınıf yazdım. Şimdi
class SumWorker
{
private:
double _sum;
public:
SumWorker() : _sum(-1.0) {}
void operator() (std::vector<double> const & arr)
{
_sum = 0.0;
for(std::vector<double>::const_iterator i = arr.begin();
i != arr.end();
i++)
{
_sum += (*i);
}
}
double const value() const
{
return _sum;
}
};
, iki yoldan birini kullanarak toplamını hesaplayabiliriz: çiftlerde bir std::vector
toplamını hesaplamak ve bana daha sonra sonuç almak için bir yol vermek gerekiyordu. Ana iş parçacığı içinde,
ile yaptığımda her şey çalışır. Ben ayrı bir iş parçacığı (bütün mesele olduğu) içinde
SumWorker S;
boost::thread thread(S, numbers); // Should be equivalent to "S(numbers);"
thread.join(); // Wait for thread to finish
double sum = S.value(); // "sum" now contains -1.0
bunu denerseniz Ancak ... o zaman çalışmaz.
Eğer bu açıksa üzgünüm, ama çok şaşırdım. Herhangi bir ipucu?