Отладка pyQT4 приложения?

Я соглашаюсь с Jeremy на этом. Вы спрашиваете, необходимо ли создать новый контекст данных для каждого контроллера или на страницу - я склонен создавать новый для каждого независимого запроса.

я создаю решение в настоящее время, которое раньше реализовывало статический контекст как Вы, делают, и когда я бросил тонны запросов в звере сервера (миллион +) во время стресс-тестов, я также получал блокировки чтения-записи случайным образом.

, Как только я изменил свою стратегию использовать различный контекст данных на уровне LINQ на запрос и положил, что SQL-сервер мог работать свое волшебство организации пула подключений, блокировки, казалось, исчезли.

, Конечно, я находился под некоторой нехваткой времени, таким образом пробуя много вещей все в то же время, таким образом, я не могу быть на 100% уверен, именно это зафиксировал его, но у меня есть высокий уровень уверенности - давайте поместим его тот путь.

42
задан Paul Wicks 15 November 2009 в 09:08
поделиться

1 ответ

Вам необходимо вызвать QtCore .pyqtRemoveInputHook . Я заключил его в свою версию set_trace :

def debug_trace():
  '''Set a tracepoint in the Python debugger that works with Qt'''
  from PyQt4.QtCore import pyqtRemoveInputHook

  # Or for Qt5
  #from PyQt5.QtCore import pyqtRemoveInputHook

  from pdb import set_trace
  pyqtRemoveInputHook()
  set_trace()

И когда вы закончите отладку, вы можете вызвать QtCore.pyqtRestoreInputHook () , что, вероятно, лучше всего, когда вы все еще находитесь в pdb, а затем после того, как вы нажмете Enter, и консольный спам происходит, продолжайте нажимать 'c' (для продолжения), пока приложение не возобновит работу должным образом. (Мне по какой-то причине пришлось нажимать 'c' несколько раз, он продолжал возвращаться в pdb, но после нескольких нажатий он возобновлялся нормально)

Для получения дополнительной информации Google "pyqtRemoveInputHook pdb". (На самом деле очевидно, не так ли?; P)

82
ответ дан 26 November 2019 в 23:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: