dareiosto ha scritto:
Ho scoperto che un modo che evita che questo accada è settare nel load form la proprietà:
CheckForIllegalCrossThreadCalls = false
E' una pratica corretta?
In poche parole, è un po' come avere il ladro che ti entra in casa facendo suonare l'allarme, e tu hai spento solo l'allarme.
dareiosto ha scritto:
Se lancio la mia funzione dal windows form in un thread separato, ovviamente il metodo lanciato non può aggiornare variabili perchè non è un'operazione crossthread safe. Come posso fare?
Devi pubblicare l'aggiornamento mettendolo nella coda principale dell'applicazione, oppure - meglio - con un timer a bassa priorità vai a leggere periodicamente il valore raggiunto della progressione del processo e lo visualizzi.
In poche parole, invece di scrivere dal thread secondario a quello primario, nel secondario aggiorni solo un valore e dal primario te lo vai esclusivamente a leggere.
Ciao!