Metodo datagrid.refresh()

venerdì 19 ottobre 2007 - 17.19

locusta1280 Profilo | Newbie

Salve,

Ho il seguente problema e spero possiate aiutarmi: ho un datagrid che ha per datasource una tabella in cui memorizzo dei dati che ottengo aprendo delle socket. E' un processo lungo per questo ho cercato di fare in modo di aggiornare il datagrid ad ogni inserimento di una riga nella tabella. Sostanzialmente l'algoritmo in pseudocodice è:

private void btnScan_Click(object sender, EventArgs e){
datagrid1.datasource = table;

for(...){
//apri socket
//invia e ricevi dati
//elaborali
//crea nuova riga row;
//aggiungila alla tabella table
datagrid1.refresh();
}
}

A funzionare funziona ma capita che la form si blocchi. Il puntatore diventa una clessidra e non posso cambiare la scheda in cui mi trovo, se mantengo la form aperta allora vedo il datagrid popolarsi man mano, se passo ad altre applicazioni e torno sulla mia la form si blocca fin quando non termina completamente l'algoritmo e il datagrid può mostrare i dati finali.

C'è un modo per ovviare a questo problema? Possibilmente senza scomodare i thread che ancora non ho studiato?

Come sempre vi ringrazio.




Pietro

StefanoLep Profilo | Senior Member

Ciao, hai già provato ad aggiungere un Application.DoEvents();
dopo il refresh?
Rallenta ancora ma non dovrebbe sembrare bloccata...

Solo chi fa sbaglia :-)

locusta1280 Profilo | Newbie

Il programma è troppo lento, l'usabilità risulta fortemente compromessa. L'unica soluzione è l'adozione dei Thread, sto cercando di colmare questa mia lacuna...

Come si dice? Meglio tardi che mai!

Grazie cmq!
Pietro
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5