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):
ok fin qua ho tutto quello che mi serve.. alla pressione del bottone rialza l'evento se sottoscritto. Andiamo nella window principale oracodice: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); } }
Mi riporta errore dentro il metodo EseguiStopPlay: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 }
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?


Rispondi quotando