Visual Basic.NET - 2019 - No se ha iniciado el subproceso

 
Vista:
sin imagen de perfil

2019 - No se ha iniciado el subproceso

Publicado por Marco Elgueta (1 intervención) el 31/05/2023 18:43:25
Estimados

Comento que tengo este código para crear un subproceso y validar el envío de un correo los días lunes a las 8 am. En la primera validación funciona, pero cuando vuelve a validar, arroja el error "No se ha iniciado el subproceso" y cierra la aplicación:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Private Sub tmReports_Tick(sender As Object, e As EventArgs) Handles tmReports.Tick
        Thread_Reports = New Thread(AddressOf RevisarSemana)
        Thread_Reports.Start()
End Sub
 
 Private Sub RevisarSemana()
        Try
            If Now.DayOfWeek = 1 Then
                If Now.Hour = 8 Then ' If Now.Hour >= 7 And Now.Hour <= 7 Then
 
                    If IsNothing(Thread_Reports) OrElse Thread_Reports.IsAlive = False Then
 
                        Thread_Reports = New Thread(AddressOf ReporteSemanal)
                        Thread_Reports.Start()
                        Thread_Reports.Join()
 
                    End If
                End If
            End If
        Catch ex As Exception
            lblError.Text = ex.Message
        End Try
 
    End Sub
 
 
 Private Sub ReporteSemanal()
 dtbReports.Clear()
        dtbReports = oREP.BusquedaReports("Semanal").Tables("Base")
 
        If dtbReports.Rows.Count = 0 Then
 
           ... código para generar reporte.
 
            RemoveHandler tmReports.Tick, AddressOf tmReports_Tick
 
       End If
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

2019 - No se ha iniciado el subproceso

Publicado por NP (1 intervención) el 14/06/2023 14:59:00
Prueba lo siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Private Sub tmReports_Tick(sender As Object, e As EventArgs) Handles tmReports.Tick
 
	CheckForIllegalCrossThreadCalls = False
 
        Thread_Reports = New Thread(AddressOf RevisarSemana)
        Thread_Reports.Start()
 
End Sub
 
 Private Sub RevisarSemana()
        Try
            If Now.DayOfWeek = 1 Then
                If Now.Hour = 8 Then ' If Now.Hour >= 7 And Now.Hour <= 7 Then
 
                    If IsNothing(Thread_Reports) OrElse Thread_Reports.IsAlive = False Then
 
                       dtbReports.Clear()
 		       dtbReports = oREP.BusquedaReports("Semanal").Tables("Base")
 
 		       If dtbReports.Rows.Count = 0 Then
 
 		          ... código para generar reporte.
 
 		       RemoveHandler tmReports.Tick, AddressOf tmReports_Tick
 
 		      End If
 
                    End If
                End If
            End If
        Catch ex As Exception
            lblError.Text = ex.Message
        End Try
 
 End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar