Bonfo
22-12-2008, 17:05
Ciao a tutti.
E' da un bel po' che non mi diletto con la programmazione .NET quindi sono un bel po' a secco.
Non mi aspetto una risposta esaustiva, ma almeno fonti e documentazione o altri forum su cui domandare! ;)
Veniamo al punto. :D
Mi creo una bella Form. Dodo di che alla notifica dell'evento Load avvio un thread.
Se nel delegato del thread uso un metodo mi cucco una eccezione perchè il CLR dice che non posso accedere ad un oggetto Control da un altro thread diverso da quello che l'ha creato. :(
Ok. Mi faccio il mio bel delegato per il metodo in questione e uso la Invoke(). :rolleyes:
Ora però mi da lo stesso errore se volgio accedere a una proprietà della Form. E qui per risolvere il probelma devo proprio fare un giro dell'oca! :muro:
Prima di tutto mi devo fare il metodo per accedere alla property:
private bool isFocused()
{
return Focused;
}
poi mi devo creare il delegato (tipo e membro):
private delegate bool FormFocusDelegate();
private FormFocusDelegate focusDelegate;
....
focusDelegate = new FormFocusDelegate(isFocused);
....
ed infine all'interno del delegate del thread uso la invoke:
(bool) Invoke(focusDelegate)
Insomma, mi sembra una cosa troppo complicata per C#! Sicuramente c'è un metodo più semplice. :sofico:
HELP! :help: ;)
E' da un bel po' che non mi diletto con la programmazione .NET quindi sono un bel po' a secco.
Non mi aspetto una risposta esaustiva, ma almeno fonti e documentazione o altri forum su cui domandare! ;)
Veniamo al punto. :D
Mi creo una bella Form. Dodo di che alla notifica dell'evento Load avvio un thread.
Se nel delegato del thread uso un metodo mi cucco una eccezione perchè il CLR dice che non posso accedere ad un oggetto Control da un altro thread diverso da quello che l'ha creato. :(
Ok. Mi faccio il mio bel delegato per il metodo in questione e uso la Invoke(). :rolleyes:
Ora però mi da lo stesso errore se volgio accedere a una proprietà della Form. E qui per risolvere il probelma devo proprio fare un giro dell'oca! :muro:
Prima di tutto mi devo fare il metodo per accedere alla property:
private bool isFocused()
{
return Focused;
}
poi mi devo creare il delegato (tipo e membro):
private delegate bool FormFocusDelegate();
private FormFocusDelegate focusDelegate;
....
focusDelegate = new FormFocusDelegate(isFocused);
....
ed infine all'interno del delegate del thread uso la invoke:
(bool) Invoke(focusDelegate)
Insomma, mi sembra una cosa troppo complicata per C#! Sicuramente c'è un metodo più semplice. :sofico:
HELP! :help: ;)