Обработка py_canoe в многопоточной средеPython

Программы на Python
Ответить
Anonymous
 Обработка py_canoe в многопоточной среде

Сообщение Anonymous »

Я пытаюсь реализовать инструмент, который выполняет некоторые команды в CANoe, используя для этого библиотеку py_canoe. Если я реализую все вызовы CANoe в основном потоке, все работает нормально, но поскольку некоторые из них занимают много времени (максимальное значение — 4 минуты), я хочу выполнить его в параллельном потоке и сохранить основной только для обновлений графического интерфейса.< /p>
Когда я это делаю, я вижу некоторые странные случаи, когда выполнение CANoe останавливается после открытия экземпляра, в зависимости от машины, на которой я запускаю инструмент, что является спорадической проблемой. В качестве подсказки: я использую pySimpleGUI для пользовательского интерфейса и использую встроенную реализацию потоков, но я уже пытался написать код самостоятельно, и результат тот же.
Я в документации не видно, является ли эта библиотека потокобезопасной или нет, поэтому я предполагаю, что это не так, и именно поэтому у меня такие проблемы.
Кто-нибудь видел что-нибудь подобное? Кто-нибудь выполняет эту библиотеку в графическом интерфейсе или многопоточном приложении? Если да, то как?
Это пример моего кода:

Код: Выделить всё

Pd_conf.MainWindow.perform_long_operation(func=lambda: execute_smoketests(choice), end_key="--PRECONDITION_CHECK_DONE--")
event, values = Pd_conf.MainWindow.read(timeout=0)
event = None
print(f"TARGET   : Execute the following smoke tests: {choice}")
print(f"Duration : 0:00:00")  # noqa: F541
timeDelta = 0
compileStart = datetime.now()
while event != "--PRECONDITION_CHECK_DONE--":
event, values = Pd_conf.MainWindow.read(timeout=1000)
if (datetime.now() - compileStart).seconds > timeDelta:
# Get time delta since start of CANoe operation
timeDelta = (datetime.now() - compileStart).seconds
# Update print output if one second has passed
print(f"Duration : {timedelta(seconds=timeDelta)}", replace=f"Duration : {timedelta(seconds=timeDelta-1)}")
Заранее спасибо!
Я ожидал, что библиотека py_canoe будет работать из другого потока или хотя бы с помощью графического интерфейса приложения
п>

Подробнее здесь: https://stackoverflow.com/questions/791 ... nvironment
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»