Originariamente inviato da alka
Se pretendi che ti dia suggerimenti in base a quanto non posso vedere perché non lo scrivi, hai una bella pretesa. :master:
Come dicevo prima, se tu lo avessi scritto, non ci sarebbe stato bisogno di sprecare tempo da parte mia per spiegare qualcosa di inutile. Se poi si impiega caratteri e si cerca di illustrare quante più cose possibili e te la prendi perché non ho indovinato qualcosa che non hai detto e che avresti dovuto dire, non so che dirti.
In ogni caso, non capisco il tuo discorso: come fai a non capire la mia deduzione sul fatto che tu non abbia seguito lo schema che ho illustrato se tutto il codice che hai mostrato semplicemente non si inserisce nel contesto così come l'ho descritto?
Non mi hai fatto vedere come apri il secondo form, ma è lampante che non lo apri così come ho descritto io: non c'è l'aggiornamento del form chiamante nel codice del form chiamante stesso, visto che si trova nel codice del form secondario (questo però l'hai postato), a meno che tu non lo richiami dall'una e dall'altra parte; in ogni caso, è una soluzione diversa da quella che ho postato io, questo almeno mi sembra evidente. In secondo luogo, senz'altro non raccogli dal form chiamante il risultato dell'operazione nel form secondario: siccome il form secondario provvede ad aggiornare e a fare tutte le operazioni correlate, qualsiasi operazione di questo tipo duplicata nel form chiamante sarebbe inutile, quindi se c'è e non potevo saperlo, sarebbe comunque errata, se non c'è andrebbe spostata in quel luogo; anche in questo caso, comunque, la tua soluzione è diversa.
Ma che significa "test": se inserisco qualcosa nel codice che non ha un senso e chiedo ad altri di fornire un giudizio, il fatto che si tratti di un "test" non rende un'istruzione inutile significativa.
Contrariamente a quanto si creda, è tutt'altro che performante e molti fanno la scelta giusta sapendo come funzionano i thread e pertanto utilizzandoli per lo scopo per cui sono nati, evitando come la peste l'uso di DoEvents che introduce solamente possibili effetti collaterali se non si provvede a "blindare" qualsiasi parte dell'applicazione.
Se i thread non funzionano a dovere, la soluzione è sfruttarli nel modo opportuno e corretto; l'uso di Application.DoEvents in questo contesto è un palliativo.
Onestamente, non capisco cosa ti impedisca di scrivere codice corretto pur trovandoti nella cosiddetta "fase di test" (con cui generalmente si identifica il processo per la verifica del funzionamento di classi e metodi già conclusi, non di creazioni, distruzioni e chiusure gettate alla rinfusa).
Nei metodi che hai postato hai usato Dispose in uno, nell'altro no.
Usare un approccio differente in metodi diversi cambia il funzionamento del codice, e questo avviene soprattutto in un ambiente "gestito" quale è .NET.
Meno male che questo non era incluso nel test.