Поток представляет из себя фрагмент программного кода, который может работать независимо — параллельно выполнению основной программы. Например, можно создать поток, который будет управлять двигателями в то время, как основная программа будет опрашивать датчики или ожидать действий пользователя.
Пример программы с двумя потоками, в ней робот выполняет две независимые задачи – мигает подсветкой с частотой 1 раз в секунду и параллельно — выводит текст на экран с частотой 0,4 секунды.
Вы можете скопировать указанный ниже код в IDE MS Small Basic с установленной библиотекой EV3 и подключенным блоком Lego EV3 и запустить:
Sub Blinker ' подпрограмма, которая будет выполняться в параллельном потоке
While "true"
EV3.SetLEDColor("ORANGE","NORMAL")
Program.Delay(500)
EV3.SetLEDColor("OFF","NORMAL")
Program.Delay(500)
EndWhile
EndSub
' основная программа
Thread.Run = Blinker ' запуск параллельного потока выполнения
LCD.Clear()
For y = 0 to 120 Step 10 ' цикл запустится 13 раз, а не 12
LCD.Text(1, 0, y, 1, "Tick")
Program.Delay(400) ' пауза 0.4 сек
EndFor