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?