Ehilà
Piccoli quesiti che google fatica a rispondere (sopratutto se non sai quello che cerchi esattamente).

Ho un Evento scritto da me, e utilizzato in un thread separato.. piccola preview della classe JoyInput (classe custom per gestire il joystick):

codice:
public delegate void gestoreButtonReleased(object sorgente, int button);

Class JoyInput
{
  public void joystart() {
    //dichiarazione dei controlli input

    //eseguo un while infinito su un thread separato per attendere una pressione del bottone
    Thread t = new Thread(new ThreadStart(this.WaitForInput));
    t.Name = "JoyInput Thread";
    t.Start();
  }

  //Evento pubblico
  public event gestoreButtonReleased OnButtonReleased;

  //metodo eseguito su un altro thread
  private WaitForInput() {
    //condizioni varie
 
   //se la pressione è true
   OnButtonReleased(this, i);

  }

}
ok fin qua ho tutto quello che mi serve.. alla pressione del bottone rialza l'evento se sottoscritto. Andiamo nella window principale ora
codice:
// codice codice
public void funzionex
{
  //Dichiaro il joypad
  JoyInput joy = new JoyInput();
  joy.joystart();

  //sottoscrivo l'evento alla pressione del bottone
  joy.OnButtonReleased += new gestoreButtonReleased(joy_OnButtonReleased);
}

private void joy_OnButtonReleased(object sorgente, int button)
{
    EseguiStopPlay();
}

private void EseguiStopPlay()
{
  //azioni varie sui controlli
}
Mi riporta errore dentro il metodo EseguiStopPlay:
Informazioni aggiuntive: Impossibile accedere all'oggetto dal thread chiamante perché tale oggetto è di proprietà di un altro thread.

Infatti il problema è che EseguiStopPlay viene eseguito sul thread separato, non su quello principale.. come fare?