Obtendo o valor de retorno de uma função de membro boost :: threaded?

Eu tenho uma classe de trabalho como a abaixo:

class Worker{
public:
  int Do(){
    int ret = 100;
    // do stuff
    return ret;
  }
}

É destinado a ser executado com boost :: thread e boost :: bind, como:

Worker worker;
boost::function<int()> th_func = boost::bind(&Worker::Do, &worker);
boost::thread th(th_func);
th.join();

Minha pergunta é: como obtenho o valor de retorno de Worker :: Do?

Desde já, obrigado.

questionAnswers(5)

yourAnswerToTheQuestion