Nessuno che può aiutarmi?
Io nel frattempo ho continuato a studiarmi la situazione ed ho risolto in parte...
Facendo nel seguente modo funziona senza problemi!
codice:
private:delegate void MyDelegate(); //Definisco Delegato
void video(IplImage *view)
{
if (videobox->InvokeRequired)
{
videobox->BeginInvoke(gcnew MyDelegate(this,&Form1::InvokeMethod) );
}
else
{
this->videobox->Visible=false;
}
}
//Metodo invocato per la modifica del controllo in questione
void InvokeMethod()
{
this->videobox->Visible=false;
}
Il problema è che ho bisogno di passare al metodo InvokeMethod() il parametro view di tipo IplImage * e non so come fare anche perchè se non ho capito male accetta solo parametri di tipo Object^
Vi incollo qui sotto il codice bozza per far capire meglio cosa devo fare :
codice:
private:delegate void MyDelegate(IplImage *view );
void video(IplImage *view){
if(videobox->InvokeRequired){
videobox->BeginInvoke(gcnew MyDelegate(this,&Form1::InvokeMethod),view); //non posso passare view(non è un Object^)
}
else{
this->videobox->Image=view;
}
}
void InvokeMethod(IplImage *view )
{
videobox->Image=view;
}
(videobox->Image=view; questa ve l'ho scritta così solo per farvi capire che a me serve il parametro view per poter modificare la proprietà Image, in realtà non mi basta una semplice assegnazione ma qui è irrilevante
)
Questa è stata la mia prova ma ovviamente non va poichè il BeginInvoke accetta come secondo parametro un array di Object ^ e non so proprio come fare per passare view come parametro al metodo InvokeMethod.
Qualche consiglio?