VB [Aiuto]Thread in background terminato

Stato
Discussione chiusa ad ulteriori risposte.

Kreatos

Utente Electrum
18 Dicembre 2008
151
44
1
147
Ciao ragazzi spero che mi potete dare una mano xkè ho il seguente problema...allora ho fatto un thread impostandolo in background e funziona alla perfezione, solo che non capisco xkè se metto nel button 1 thread01.start lo fa iniziare ma anche se finisce e lo voglio fare ricominciare mi dice <<"Impossibile riavviare il thread perché è in esecuzione o è terminato.">> la mia domanda è come faccio a riavviare il thread?
 
ora provo...cmq ho risolto più o meno con un ciclo do infinito xD
E credi che così possa andare bene? ._. Ma che programmatori siete? Programma meglio mia nonna xD(sento che arriverà un altro warn T_T) Se è possibile farlo con dei metodo fatti appositamente, perché utilizzare modi rudimentali? ._.
 
certo, se vuoi che vada avanti in continuazione ti basta fare un ciclo senza nessuna condizione(infinito) e ti basta utilizzare il metodo .sleep([tempo in millisecondi]) che ti sospendera il thread per il tempo che hai inserito, io pensavo che lo volessi avviare/fermare a tuo piacimento.
 
con il ciclo do volevo fare una prova per vedere se lo ripeteva...cmq i metodi non rudimentali quali sarebbero :) ?
 
si lo so ma se lo voglio sospendere dopo un'esecuzione e riprenderlo?
Cmq se io ho questo codice xkè funziona a metà?
Codice:
    Sub start_process()
        Dim inter As New internet
        Do
            Thread.Sleep(200)
            inter.Internet_test()
        Loop
    End Sub
End Class
Public Class internet
    Dim myForm1 As New Form1()
    Delegate Sub PD()
    Public Sub Internet_test()
        If myForm1.Button1.InvokeRequired Then
            myForm1.Button1.Enabled = False
            myForm1.Button1.Invoke(New PD(AddressOf Internet_test))
        Else
            If InternetCheckConnection = true Then
                myForm1.Button1.Enabled = False
                MessageBox.Show("Disconnesso da Internet")
            Else
                MessageBox.Show("Connesso ad Internet")
            End If
        End If
    End Sub
End Class
I messagebox appaiono correttamente xò il button non si disattiva...xkè?
 
si lo so ma se lo voglio sospendere dopo un'esecuzione e riprenderlo?
Cmq se io ho questo codice xkè funziona a metà?
Codice:
    Sub start_process()
        Dim inter As New internet
        Do
            Thread.Sleep(200)
            inter.Internet_test()
        Loop
    End Sub
End Class
Public Class internet
    Dim myForm1 As New Form1()
    Delegate Sub PD()
    Public Sub Internet_test()
        If myForm1.Button1.InvokeRequired Then
            myForm1.Button1.Enabled = False
            myForm1.Button1.Invoke(New PD(AddressOf Internet_test))
        Else
            If InternetCheckConnection = true Then
                myForm1.Button1.Enabled = False
                MessageBox.Show("Disconnesso da Internet")
            Else
                MessageBox.Show("Connesso ad Internet")
            End If
        End If
    End Sub
End Class
I messagebox appaiono correttamente xò il button non si disattiva...xkè?

perche hai scritto da tutte e due le parti false, stai piu attento
 
L'ho fatto apposta xD x farvi capire che non me lo disattiva completamente! cioè è come se salta quell'operazione...
 
In realtà lo disattiva il button. Ma myForm1 non lo visualizzi. Generi un'istanza di Form1 senza richiamare poi il metodo Show. In sostanza esiste solo in memoria, ma niente viene mostrato a schermo.
Due istanze di una classe sono diverse tra loro. Anche se sono istanze della stessa classe!
 
Stato
Discussione chiusa ad ulteriori risposte.