HEJ! Det finns mig veterligen inte någon möjlighet att få t ex ett TimeOut-event från Thread-klassen. Så du måste nog skapa en tråd och sedan ha en timer i den anropande tråden och kontrollera t ex IsAlive-propertyn eller liknande. OK! Ett annat alternativOm inte sub/funktion blir klar?
Kan man på något sätt övervaka om en sub eller funktion inte blir klar?
??? Tråd med mutex på något sätt ???
/AlexanderSv: Om inte sub/funktion blir klar?
Sv: Om inte sub/funktion blir klar?
Då provar jag något sådant.
Det funkar. Men om någon har någon annan ide så fram med den!!!
<code>
Dim Tråd As New System.Threading.Thread(AddressOf _TRÅD)
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
Call Utför()
Catch ex As Exception
MsgBox(ex.Message)
Tråd.Abort()
End Try
End Sub
Public Sub Utför()
'Tråd.IsBackground = True
Tråd.Name = "Tråd_Utför"
Debug.WriteLine(Now & " : TRÅD START")
Tråd.Start()
System.Threading.Thread.Sleep(5000)
If Tråd.IsAlive Then
Throw New Exception("Utför_TimeOut")
End If
Debug.WriteLine(Now & " : TRÅD KLAR")
End Sub
Public Sub _TRÅD()
Debug.WriteLine(Now & " : _TRÅD START")
'System.Threading.Thread.Sleep(4000)
'Debug.WriteLine(Now & " : _TRÅD KLAR")
Do
Loop
End Sub
</code>Sv: Om inte sub/funktion blir klar?
<code>
Dim Tråd As New System.Threading.Thread(AddressOf _TRÅD)
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
Call Utför()
Catch ex As Exception
MsgBox(ex.Message)
Tråd.Abort()
End Try
End Sub
Public Sub Utför()
Tråd.IsBackground = True
Tråd.Name = "Tråd_Utför"
Tråd.Start()
'Vänta 5 sekunder som max.
If Tråd.Join(5000) = False Then Throw New Exception("UTFÖR:TimeOut")
End Sub
'Här utför man det som kan hänga sig...
Public Sub _TRÅD()
System.Threading.Thread.Sleep(14000)
End Sub
</code>