Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Подвисает поток  (Прочитано 524 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Luca Brasi

  • Автор темы
  • Активист
  • *
  • Сообщений: 706
  • typical engineer
    • Просмотр профиля
Подвисает поток
« : 12 Декабря 2015, 20:52:54 »
Написал  небольшой код по решению нижеописанной задачи. Программа подвиcает в самый разный момент. Прошу помочь внести ясность. Попытаюсь изложить все более-менее упрощенно.
Цель: Выводит текущее положении курсора на экране и время сколько он в этом положении пробыл. При нажатии Crtl, прерывать прерывать выполнение, затем выводить координату курсора в момент нажатия Crtl и дальше продолжать делать как на предыдущем шаге. То есть писать координаты.
Текущее решение: Написал все с использованием двух потоков. Первый, непрерывно пишет кординаты, второй перехватывает нажатие клавиш. Если было нажатие, первый поток выводит кординату, второй поток ждет. Далее первый поток снимает ожидание и все продолжает в штатном режиме до следующего нажатия Crtl.
Проблема. Все вроде бы работает, но в некоторый момент может зависать на этапе нажатия кнопки Crtl. Я использовал threading.event(), читал про некоторые сложности с ним, мол может сбрасываться теряться событие и пр. Может это как то быть связано с моим случаем? Да и вообще, может как то можно более надежно решить мою задачу не отходя сильно от идеи двух потоков...
(Нажмите, чтобы показать/скрыть)
Ubuntu 18.04/ AMD Ryzen 5 2600 3.4GHz/ MSI B450-A Pro Max / Crucial DDR4-3000 16384MB / MSI PCI-Ex GeForce GT 710 2048 MB / Chieftec GPS-600

 

Страница сгенерирована за 0.051 секунд. Запросов: 26.