У меня есть метод, который выполняется в другом потоке, а не в основном потоке. Если это заканчивается, он вызывает обратный вызов. Но основной поток должен ждать, в противном случае он уничтожает объект, который обратный вызов хочет вернуть.
Теперь для простоты у меня есть следующий код:
int main()
{
Something* s = new Something();
s.DoStuff(); // Executed on another thread
delete (s); // Has to wait for DoStuffCallback() to be executed
}
void Something::DoStuff()
{
// Does stuff
// If done, calls its callback
}
void Something::DoStuffCallback()
{
// DoStuff has finished work
}
Как мне дождаться выполнения DoStuffCallback () и продолжить работу с основным потоком?
Большое спасибо!
Edit:
Это не работает для меня, так как у меня нет доступа к нужному компилятору. (Я уже упоминал VS2010)