Por fin estoy terminando por fin mi primera aplicación programada íntegramente en Visual basic .NET en parte gracias a vuestra ayuda

Os cuento cómo está organizada: tengo 2 hilos, uno que debe leer CONTINUAMENTE de una base de datos y otro que debe actualizar esa base de datos cada 5 segundos. Tengo cuatro botones, dos para iniciar cada uno de ellos y los otros dos para pararlos respectivamente.
El hilo que actualiza la base de datos hace su trabajo correctamente por fin, pero el que lo debe leer continuamente me da más problemas. O bien se bloquea el PC (es muy potente y la base de datos apenas ocupa 100 KB) o bien me saltan continuamente avisos (hasta 300 en pocos segundos) con el mensaje "Error no especificado".
He probado a poner a dormir el que lee 1 segundo o dos y en ese caso ya no se bloquea ni satura el PC pero sin embargo no actualiza correctamente la base de datos...
¿Qué podría hacer para que se me ejecute el hilo continuamente sin saturar el PC? y sin que el hilo que actualiza interfiera con el que sólo lee?
Gracias

Ejemplo de código
Código:
Private Sub BLeerBD_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BLeerBD.Click ThreadLeerBD = New System.Threading.Thread(AddressOf Me.EjecutaHiloBD) actualizaLeerBD(ThreadLeerBD) compruebaHiloLeerActivo(ThreadLeerBD) End Sub Private Sub BStopLeer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BStopLeer.Click bandera1 = True MessageBox.Show("Botón STOP Pulsado (Leer)", "Aviso") End Sub Public Sub actualizaLeerBD(ByVal ThreadLeerBD As System.Threading.Thread) System.Windows.Forms.Application.DoEvents() If ThreadLeerBD.IsAlive = True Then ThreadLeerBD.Start() ThreadLeerBD.IsBackground = True Else ThreadLeerBD = New System.Threading.Thread(AddressOf Me.EjecutaHiloBD) ThreadLeerBD.Start() ThreadLeerBD.IsBackground = True End If End Sub Public Sub compruebaHiloLeerActivo(ByVal ThreadLeerBD As System.Threading.Thread) While bandera1 = False System.Windows.Forms.Application.DoEvents() ThreadLeerBD.Sleep(1000) actualizaLeerBD(ThreadLeerBD) End While End Sub