I think the easiest way is to use a Timer. Sure it'll block your UI, but you can also access your UI from there.
Let's assume that you have these things:
- Sub Check() - Checks the database for changes. Calls Update(stuff) if there are changes
- Sub Update(stuff) - Updates the UI with stuff.
Create a timer. In the tick event, call Check().
Alternatively, if you really want to create multiple threads, in your form load, start a thread that loops forever:
Sub CheckContinuously()
While True
Check()
Threading.Thread.Sleep(1000)
End While
End Sub
Threading.Tasks.Task.Factory.StartNew(AddressOf CheckContinously)
To stop this thing, you'll need to change the while condition. I would stick with the timer if the processing time is short.