2016-04-15 10 views
0

Ich versuche, einen Timer zu machen, der eine Funktion in einem voreingestellten Intervall aufruft. Dies ist der Code, den ich bisher habe.Verweis auf Member-Funktion in C++/CX

void MainPage::startTimer() 
{ 
    DispatcherTimer^ refreshTimer = ref new DispatcherTimer; 
    refreshTimer->Tick += ref new Windows::Foundation::EventHandler<Platform::Object^>(this, &MainPage::refreshFunc); 
    TimeSpan t; 
    t.Duration = 500; 
    refreshTimer->Interval = t; 
    refreshTimer->Start(); 
} 

void MainPage::refreshFunc(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e) 
{ 
    ... 
} 

Wenn ich zu kompilieren versuche ich erhalte eine Fehlermeldung, die besagt:

invalid delegate initializer -- function does not match the delegate type 

Die Fehlerpunkte auf den zweiten Parameter der Eventhandler in dieser Linie (Linie 4 oben):

refreshTimer->Tick += ref new Windows::Foundation::EventHandler<Platform::Object^>(this, &MainPage::refreshFunc); 

Was mache ich hier falsch?

Ich bin mit C++/CX und Kompilieren mit VS2015 Gemeinschaft

+0

Machen Sie es 'Eventhandler ', so dass es den Event-Handler übereinstimmt. –

Antwort

0

Ändern der Typ des zweiten Parameters zu Platform::Object^:

void MainPage::refreshFunc(Platform::Object^ sender, Platform::Object^ e)