В университете я впервые узнал про потоки, когда слушал лекции по jave. А недавно узнал, что потоки присутствуют в любом языке, в том числе и в VB.
Неплохо написано про потоки в статье
Многопоточные приложения для .NETДля управления потоками есть следующие команды:
Dim myThread as New Thread(AddressOf mySub) - создание нового потока
myThread.start() - запуск потока
Thread.sleep(milliseconds) - остановка текущего потока на время, указанное в миллисекундах
myThread.suspend() - приостановка
mythread.resume() - возобновление
mythread.abort() - уничтожение
Потоки могут совместно использовать глобальные переменные, и при этом я не нашел возможностей блокировать эти переменные одним потоком от других. В основном в инете приводятся примеры синхронизации с использованием метода myThread.isAlive(), что не дает информации, выполняется поток или простаивает.
Синхронизация потоков
Метод myThread.join() позволяет отследить, что поток закончил выполнение.
Также есть дополнительные классы для синхронизации, как monitor и
mutex. А здесь обсуждается
разница между этими классами.