Originariamente inviato da Gianluca Frati
Ciao ragazzi,
sono passato da poco a sviluppare applicazioni da VB6 a VB2005.
Dopo i primi entusiasmi nel vedere che alcune cose erano diventate davvero comode, anche rispetto alla precedente piattaforma .NET mi sono scontrato con alcuni bachi piuttosto notevole.
Ultimo, ma a mio parere gravissimo baco, la popolazione di una datagridview con binding.
E' paurosamente lenta, anche togliendo tutte le opzioni di autosize della griglia stessa, il popolamento e quindi la visualizzazione della griglia stessa è lentissima anche con poche righe, intorno alle 700 e 6 colonne.
Potrete immaginarvi quindi quando si tratta di riordinare in base ad una colonna una griglia con 10000 record.
Guardando in giro per il web, oltre a disattivare tutti le opzioni di autosizing, viene suggerito di annullare tutti i tipi di refresh della griglia stessa durante il popolamento in questo modo:
codice:
DataGridView1.SuspendLayout()
Me.BindingSource1.RaiseListChangedEvents = False
Me.TableAdapter1.Fill(Me.DataSet1.Table)
Me.BindingSource1.RaiseListChangedEvents = True
Me.BindingSource1.ResetBindings(False)
DataGridView1.ResumeLayout()
I risultati mettono tristezza: per una griglia di 700 righe il tempo impiegato a visualizzarla è intorno ai 2 secondi: inaccettabile.
Non ho un computer scheggia ma nemmeno una schifezza: Pentium 4 con 512 MB RAM e 2.82 Ghz.
Speravo che i problemi sussistessero solo in fase di debug ma anche con l'applicazione compilata e installata il risultato non si discosta molto.
Infine sono arrivato a leggere questo articolo:
http://connect.microsoft.com/VisualS...dbackID=115301
Voi sapete qualcosa al riguardo?