Wątki#
Wstęp#
Wątki pozwalają kontrolerowi drona VEX AIR na jednoczesne wykonywanie wielu zadań w ramach tego samego programu. Umożliwiają one wielozadaniowość, pozwalając dronowi VEX AIR wykonywać niezależne czynności w tym samym czasie.
Uwaga: Aby używać funkcji z wątkiem, należy ją najpierw zdefiniować.
Konstruktor – tworzenie i uruchamianie nowych wątków.
Thread– Rozpoczyna nowy wątek, który uruchamia określoną funkcję równolegle z programem głównym.
Konstruktor#
Thread#
Thread tworzy i uruchamia wątek. Podczas tworzenia wątku możesz nadać mu nazwę, aby zatrzymać go, gdy nie będzie już potrzebny.
Stosowanie:
my_thread = Thread(my_function)
Parametry |
Opis |
|---|---|
|
Opcjonalnie. Nazwa nowego wątku. |
|
Nazwa wcześniej zdefiniowanej funkcji. |
Uwaga: Funkcja musi zawsze zostać zdefiniowana przed jej wywołaniem.
# Only play sounds when the drone moves laterally
def moving_sounds():
while True:
if drone.is_move_active():
controller.sound.play(LOOPING)
while controller.sound.is_active():
wait(50, MSEC)
wait(5, MSEC)
# Run moving_sounds at the same time
moving_sounds_thread = Thread(moving_sounds)
# Fly the drone using the controller
drone.take_off(climb_to=500)
while True:
drone.move_with_vectors(
forward=controller.axis4.position(),
rightward=controller.axis3.position(),
upward=controller.axis1.position(),
rotation=controller.axis2.position()
)
wait(5, MSEC)