gremodic
31-10-2011, 12:13
Salve a tutti,
avrei bissogno di un aiuto, in pratica io ho fatto la mia bella applicazione che gli dò una singola cartella e lui mi fà tutte le operazioni tranquillamente, adesso volevo fare una funzione che mi ripetesse quello che faccio per 1 singola cartella, per tutte le cartelle contenute in una root. A tale scopo avevo fatto la seguente funzione:
private void RepeatForAll()
{
string root = BkPath;
foreach (string SinglePath in Directory.GetDirectories(root))
{
//while (backgroundWorker1.IsBusy == true) { }
BkPath = SinglePath;
textBox1.Text = SinglePath;
button1.PerformClick();
}
Praticamente secondo la mia idea, aggiornavo semplicemente il path ed effettuavo quello che facevo prima con una singola cartella col button 1.
Adesso il problema sta nel fatto che fra le mille e mille operazioni che poi richiamerà il button 1, c'è un BackgroundWorker che prima premendo solo button1 funzionava perfettamente, adesso probabilmente colpevole la velocità di esecuzione della premuta ripetuta di questo button1 il BackGroundWorker non riesce a completare le operazioni e conseguentemente tutto il programma mi và in errore. Ho provato con quello che vedete nel commento ma non risolve, ho messo dei treadh.sleep ma non funzionano neanche. Potete darmi una soluzione? Grazie a tutti
P.S. intendo una soluzione modificando questo pezzetto di codice, penso che se aggiungo il ciclo for each all'interno del button1 includendo tutte le istruzioni del programma probabilmente non avrò lo stesso problema.
avrei bissogno di un aiuto, in pratica io ho fatto la mia bella applicazione che gli dò una singola cartella e lui mi fà tutte le operazioni tranquillamente, adesso volevo fare una funzione che mi ripetesse quello che faccio per 1 singola cartella, per tutte le cartelle contenute in una root. A tale scopo avevo fatto la seguente funzione:
private void RepeatForAll()
{
string root = BkPath;
foreach (string SinglePath in Directory.GetDirectories(root))
{
//while (backgroundWorker1.IsBusy == true) { }
BkPath = SinglePath;
textBox1.Text = SinglePath;
button1.PerformClick();
}
Praticamente secondo la mia idea, aggiornavo semplicemente il path ed effettuavo quello che facevo prima con una singola cartella col button 1.
Adesso il problema sta nel fatto che fra le mille e mille operazioni che poi richiamerà il button 1, c'è un BackgroundWorker che prima premendo solo button1 funzionava perfettamente, adesso probabilmente colpevole la velocità di esecuzione della premuta ripetuta di questo button1 il BackGroundWorker non riesce a completare le operazioni e conseguentemente tutto il programma mi và in errore. Ho provato con quello che vedete nel commento ma non risolve, ho messo dei treadh.sleep ma non funzionano neanche. Potete darmi una soluzione? Grazie a tutti
P.S. intendo una soluzione modificando questo pezzetto di codice, penso che se aggiungo il ciclo for each all'interno del button1 includendo tutte le istruzioni del programma probabilmente non avrò lo stesso problema.