Если я позвоню
Timer(.1, some_function, [some_arguments]).start()
несколько раз, что именно происходит за кулисами?
Источник нашей проблемы ...
У нас есть метод, который по сути:
def move(target):
force = calculateForce(target-getCurrentPosition())
if(force != 0)
setForce(force)
Timer(.1, moveCursor, [tx]).start()
else:
setForce(0)
После установки силы нам нужно через определенное время проверить, нужно ли ее останавливать. (Эта информация относится к внешнему физическому устройству, которое не генерирует события.)
Существуют странные проблемы, связанные с тем, сколько времени занимает эта функция, а также мы получаем ошибки «Не удается начать новый поток» через определенное время.
Это наводит меня на мысль, что Timer (...) не использует потоки повторно, а каждый раз создает новые.
В сочетании с убеждением, что используемая нами библиотека не является поточно-ориентированной, эти ошибки имели бы какой-то смысл ...