Lanciare processi in parallelo

Storico discussioni

In parallelo di il piccolo Alex
vorrei creare un'applicazione che esegua due istruzioni in parallelo... come posso fare?

di Oceanoblue
La Tua domanda è generica.
Puoi essere più preciso?

di il piccolo Alex
la mia intenzione è di visualizzare una progressBar che avanza in una maschera nuova mentre il resto del programma esegue altre operazioni per ora mi sono arrangiato cioè ho calcolato il numero di operazioni da effettuare e poi ho fatto in modo che il programma esegua un'istruzione e vada un po' avanti con la progressBar, esegua un'istruzione e vada un po' avanti con la progressBar... e così via fino a finire sia le operazioni che la progressBar...
il codice che ne salta fuori è un disastro e difficile da capire...
aiuto!!

di Oceanoblue
In effetti è complicato.
Se ho ben capito, ti consiglio di semplificare la funzione scindendola.
Crea le funzioni singolarmente e indipendenti, poi alla fine delle funzioni poni il commando "Call nome-routine", così da creare la progressione tra gli eventi che ti servono.
Lo sò è un po generico. Il mio è solo un consiglio.
Prova e faci sapere.

di Mauro
Se non ho capito male, tu hai una gestione tipo questa:

'Associato ad una Userform contenente una progressbar ed un pulsante.
Private Sub CommandButton1_Click()

Dim Conta, riga, colonna As Integer

'Imposta il valore minimo
ProgressBar1.Value = ProgressBar1.Min

'Esegue il ciclo di incremento.
riga = 1
colonna = 0
For Conta = 1 To 100
ProgressBar1.Value = Conta
colonna = colonna + 1
resto = Conta Mod 10
If resto = 0 Then
riga = riga + 1
colonna = 1
End If
Cells(riga, colonna).Value = Conta
Next Conta

ProgressBar1.Value = ProgressBar1.Min

End Sub

…ma questa gestione non ti soddisfa perché tu vorresti lavorare con 2 processi separati e paralleli. Ovvero in multithreading. Sbaglio?

di il piccolo Alex
Grazie per il consiglio...appena letto il tuo
messaggio l'ho messo in pratica e...
qualcosa di simile a quello che volevo è finalmente giunto sullo schermo probabilmente è meglio se ci lavoro su ancora un po'...
comunque grazie il tuo aiuto è stato molto utile

per mauro di il piccolo Alex
No non sbagli per niente...
la mia intenzione sarebbe proprio quella perchè fino a qualche giorno fa veniva eseguita prima un'operazione e poi un'altra...
se puoi darmi qualche dritta sul multithreading te ne sarei molto grato...

di Mauro
La programmazione multithreading è uno dei punti di forza del linguaggio Java e permette di gestire in un’applicazione più processi contemporaneamente. Purtroppo però non mi risulta che questo sia possibile anche nell’ambiente VBA.
L’unica cosa è cercare di gestire il problema con l’approccio consigliato da Oceanoblue, tuttavia si tratta solo di gestire la proprietà value della progressbar.

di il piccolo Alex
Grazie per l'interessamento, e comunque grazie ai suggerimenti che mi avete fornito sono riuscito a migliorare un po' il codice... almeno ora è leggibile

Cognolato Studio © 2005