Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Creare ed avviare più di un backgroundworker da codice??
Forum - C# / VB.NET - Creare ed avviare più di un backgroundworker da codice??

Avatar
ilprogrammatore10 (Normal User)
Newbie


Messaggi: 13
Iscritto: 21/05/2009

Segnala al moderatore
Postato alle 20:54
Martedì, 02/06/2009
Questo topic è stato chiuso dal moderatore

Ciao a tutti,
In questo periodo sto cercando di comprendere tutti gli strumenti messi a disposizione dal framework, però mi sono bloccato sul backgroundworker.
Vorrei che se ne creasse ed avviasse 1 per ogni "A" trovata in una textbox... ho provato a fare così ma viene solo avviato UN SOLO backgroundworker(infatti cliccando il button2 scopro che la stringa "speriamo" è "11" mentre le "A" nella textbox sono molteplici):
Codice sorgente - presumibilmente VB.NET

  1. Dim speriamo As String = "1"
  2.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  3.         Dim it As String = "A"
  4.         For Each it In TextBbox1.text
  5.             Dim b As New System.ComponentModel.BackgroundWorker
  6.             bw = b
  7.             b.RunWorkerAsync()
  8.         Next
  9.     End Sub
  10.     WithEvents bw As System.ComponentModel.BackgroundWorker
  11.     Public Sub J(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bw.DoWork
  12.         speriamo &= "1"
  13.     End Sub
  14.     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
  15.         MsgBox(speriamo)
  16.     End Sub



Confido in voi... (come sempre) :rofl:

Grazie

Ciao!!!

ilprogrammatore10

Ultima modifica effettuata da ilprogrammatore10 il 02/06/2009 alle 20:54
PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 17:05
Mercoledì, 03/06/2009
bw = b : questa riga di codice non ha senso, ed è quella che genera questo comportamento. Sostituiscila con:
Codice sorgente - presumibilmente C# / VB.NET

  1. AddHandler b.DoWork, AddressOf J


Poi togli bw (è inutile), e anche la clausola "Handles bw.DoWork". Ogni worker avrà il suo gestore di evento, e non continuerai a reimpostare bw ad ogni ciclo.

PM
Avatar
ilprogrammatore10 (Normal User)
Newbie


Messaggi: 13
Iscritto: 21/05/2009

Segnala al moderatore
Postato alle 13:40
Sabato, 13/06/2009
Grazie mille :k:

PM