Arresto e riavvio di un'elaborazione

martedì 13 ottobre 2009 - 17.33

volperubbia Profilo | Senior Member

Ciao a tutti,
ho un form molto semplice che permette l'elaborazione delle righe
di un file di testo e il corrispondente insert / update su un db.

For Each Line As String In System.IO.File.ReadAllLines("pippo.txt", New System.Text.UTF8Encoding)
ElaboraSQL
RaiseEvent IncrementaContatore_e_ProgressBar()
Next

Le dimensioni dei files possono essere di pochi mb, mentre come tempo
di elaborazione siamo sotto i 2 min. Tutto ok, ma vorrei migliorare due aspetti.

Ho notato che, pur utilizzando poche risorse (guardando il task manager),
se vado a sapostare / minimizzare / ... il form più volte, mi va in tilt il form
come se l'applicazione non rispondesse più (mentre in realtà l'importazione prosegue
e alla fine il form si ridisegna normalmente).
Occore implementare quacosa sul form per evitare questo "malfunzionamento"?

Un'altra cosa che vorrei aggiungere è un btnStop che fermi momentanamente il
ciclo e, poi eventualmente, riprenda da dove si era fermato, ma non ho ancora
una soluzione ottimale. Qualche idea?

Grazie per l'attenzione,
Davide

Teech Profilo | Expert

Per il primo problema puoi implementare il seguente codice (non è molto elegante ma dovrebbe funzionare):
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra


Per il secondo quesito credo che devi usare i Thread ma non so essere più preciso non avendoli mai implementati nelle mie applicazioni...
--------------
Maurizio Brini
--------------
Nessuna impresa è mai stata compiuta da un uomo ragionevole

volperubbia Profilo | Senior Member

Ciao Maurizio
grazie, ... Application.DoEvents va benone.
Appena risolvo l'altro problema ti dico.

Davide
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5