Има редица примери, но все още не мога да разбера решението на моя проблем. аз имам
class FooSource{
...
void StartGetFoos(void (*callback)(vector<IFoo*>*, IAsyncResult));
...
}
Когато се извика StartGetFoos()
, се прави заявка за получаване на Foos, запазвайки обратното извикване. когато заявката завърши (отнема около 30 секунди), запазеното обратно извикване се извиква с резултати. Не мога да променя сигнатурата на този метод.
и някъде другаде имам клас
class FooUser {
...
void FooUser::MyCallback(vector<IFoo*>* foos, IAsyncResult result)
{
// marshall to UI thread and update UI
}
void init()
{
fooUser->StartGetFoos(??????);
// how do I pass my callback member function here?
}
}