Originariamente inviato da dops
uhm.. diciamo che a parte il predicozzo gratuito senza che ti abbia detto che si tratta di codice non ottimizzato in quanto in fase di "test" [...]
Se pretendi che ti dia suggerimenti in base a quanto non posso vedere perché non lo scrivi, hai una bella pretesa. :master:

Originariamente inviato da dops
vorrei chiarire che innanzitutto si tratta di form modale (ovviamente il form che viene richiamato) e non riesco a capire da cosa hai dedotto che non lo sia visto che non ti ho fatto vedere come apro il secondo form.
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.

Originariamente inviato da dops
Application.DoEvents() è utilizzato in modo molto generico per lo stesso motivo di cui sopra "test"
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.

Originariamente inviato da dops
cmq credo sia molto utile e che vada utilizzata molto + spesso di quanto non si creda, molti aprono diversi thread inutilmente quando un Application.DoEvents() risulta molto + performante.
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.

Originariamente inviato da dops
Sono sempre in fase di test e sò anch'io come utilizzare il costrutto try catch finally.
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.

Originariamente inviato da dops
Molto probabilmente l'errore stà proprio nel fatto che istanzio un form già istanziato, come mi hai fatto notare.
Meno male che questo non era incluso nel test.