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
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" [...]
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.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.
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.Originariamente inviato da dops
Application.DoEvents() è utilizzato in modo molto generico per lo stesso motivo di cui sopra "test"
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.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.
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).Originariamente inviato da dops
Sono sempre in fase di test e sò anch'io come utilizzare il costrutto try catch finally.
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.Originariamente inviato da dops
Molto probabilmente l'errore stà proprio nel fatto che istanzio un form già istanziato, come mi hai fatto notare.![]()

Rispondi quotando