[B.NET] Multithreading

mercoledì 07 aprile 2010 - 16.11

brazero Profilo | Junior Member

Ciao,

qualcuno sa come potrei recuperare un valore in tempo reale di una variabile dentro un'altra funzione..
esempio:

*nel FORM

Private Sub A() Dim PrgBar As New ProgressBar Call B() pgrsBar.Value= intV??????????????????????????????????????? End Sub



* in una DLL

Private Sub B() For intV=0 to datatable.Rows.Count ... Next End Sub


La mia domanda è, come faccio a impstare il valore della ProgressBar (in realtime) dato che questo valore è dentro una funzione procedurale? Ossia dal form io chiamo la funzione "B" che fa tutto quello che deve fare in un botto, ma io volevo seguire i progressi.
Spero di essermi spiegato bene.. LOL

Grazie

AntCiar Profilo | Expert

Ciao.

Sposta il codice relativo alla progres bar nella funzione "B" oppure crea degli eventi ad hoc in modo da poter gestire tutto
Cristian Barca

brazero Profilo | Junior Member

>Ciao.
>
>Sposta il codice relativo alla progres bar nella funzione "B"
>oppure crea degli eventi ad hoc in modo da poter gestire tutto
>Cristian Barca

il fatto è che volevo mantenere la struttura della classe così com'è..
quindi per gli eventi come si fà, dato che la funzione B è una DLL?
Grazie!

AntCiar Profilo | Expert

ciao.

Crea nella classe 'B' due eventi

Public Event TotaleRighe(ByVal numRighe As Integer) ''da usare per passare il numero di righe
Public Event RigaElaborata() ''da usare ad ogni ciclo di riga in modo da poter incrementare la progressBar

Poi nella tua classe 'A' crea i due delegati:

Private Sub TotaleRighe_Handler(ByVal numRighe As Integer)
me.progressBar1.maximum = numRighe
End Sub

Private Sub RigaElaborata_Handler()
me.progressBar1.performStep()
End Sub


poi prima di invocare 'Call B' scrivi:

AddHandler B.TotaleRighe, AddressOf TotaleRighe_Handler
AddHandler B.RigaElaborata, AddressOf RigaElaborata_Handler

poi in 'B' quando fai il ciclo delle righe scrivi:

raiseevent TotaleRighe(me.tabella.rows.count)
for i = 0 to me.tabella.rows.count -1

raiseevent RigaElaborata()
next







Cristian Barca

brazero Profilo | Junior Member

Funziona!

Grazie Cristian, getilissimo ad avermi spiegato..

Ciao
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