18/10/12 16:12
hakzc
praticamente ho due form: form1 e form2
dal form 1 avvio un timer che fa partire il backgroundworker, e lo usa a mo' di timer, ad un certo punto backgroundworker deve aprire form2, form2 si apre ma c'è praticamente il puntatore in caricamento e così rimane, il form nemmeno si muove, soluzioni?
aaa
18/10/12 16:20
hakzc
Praticamente:
FORM1
TIMER1
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
BackgroundWorker3.RunWorkerAsync()
End Sub
BACKGROUNDWORKER3
Private Sub BackgroundWorker3_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker3.DoWork
If dskservitore.Pending Then
Timer1.Stop()
Array.Resize(dskcliente, dskcliente.Length + 1)
dskcliente(dskcliente.Length - 1) = dskservitore.AcceptTcpClient()
Array.Resize(dskflusso, dskflusso.Length + 1)
dskflusso(dskflusso.Length - 1) = dskcliente(dskcliente.Length - 1).GetStream()
For r = 0 To UBound(dskcliente)
ListView1.SelectedItems(0).SubItems(6).Text = r.ToString
Next
controllo_schermo.Show()
BackgroundWorker3.CancelAsync()
BackgroundWorker3.Dispose()
Timer2.Start()
End If
End Sub
DSKCLIENTE = TCPCLIENT
Riceve le connessioni, scrive l'array nella listview ed apre il form
Ultima modifica effettuata da hakzc 18/10/12 16:21
aaa
18/10/12 18:22
Ma perché il thread lo fai partire in un timer ???
19/10/12 13:18
hakzc
perchè così è a modo di timer, ma non è quello il problema, il problema è che il form si apre, ma è in continuamente in caricamento e non riesci nemmeno a muoverlo,
credo che sia qualcosa legato al thread
aaa
19/10/12 13:37
Ma cosa c'entra ?
Un thread è una cosa e un timer un'altra. Non ha senso avviare il thread da un timer.
E' sbagliata proprio l'impostazione di tutto il programma.
E non devi avviare un form all'interno di un thread che poi termina ... che senso ha?
Non te la prendere, ma si devono studiare "teoricamente" queste cose per un po' di tempo prima di scrivere codice a caso ..