Интересует такой вопрос. При выполнении какой-либо процедуры в окне с главным меню происходит такая интересная вещь: во время выполнения нажимаю на любой пункт главного меню и все встает на паузу. Только ухожу из меню — все возобновляется. Пишу на Delphi 7. Что тут может быть? Всю голову уже сломал этим вопросом.
Здравствуйте, p1ague, Вы писали:
P>Привествую все гуру программирования!
P>Интересует такой вопрос. При выполнении какой-либо процедуры в окне с главным меню происходит такая интересная вещь: во время выполнения нажимаю на любой пункт главного меню и все встает на паузу. Только ухожу из меню — все возобновляется. Пишу на Delphi 7. Что тут может быть? Всю голову уже сломал этим вопросом.
Да, забыл указать. Процедура у меня в потоке. При этом, если занести ее в обычный таймер, то паузы не происходит.
Здравствуйте, p1ague, Вы писали:
P>Здравствуйте, p1ague, Вы писали:
P>>Привествую все гуру программирования!
P>>Интересует такой вопрос. При выполнении какой-либо процедуры в окне с главным меню происходит такая интересная вещь: во время выполнения нажимаю на любой пункт главного меню и все встает на паузу. Только ухожу из меню — все возобновляется. Пишу на Delphi 7. Что тут может быть? Всю голову уже сломал этим вопросом.
P>Да, забыл указать. Процедура у меня в потоке. При этом, если занести ее в обычный таймер, то паузы не происходит.
Код приведи. Скорее всего, что-то намудрил с Synchronize.
Здравствуйте, HowardLovekraft, Вы писали:
P>>>Интересует такой вопрос. При выполнении какой-либо процедуры в окне с главным меню происходит такая интересная вещь: во время выполнения нажимаю на любой пункт главного меню и все встает на паузу. Только ухожу из меню — все возобновляется. Пишу на Delphi 7. Что тут может быть? Всю голову уже сломал этим вопросом. P>>Да, забыл указать. Процедура у меня в потоке. При этом, если занести ее в обычный таймер, то паузы не происходит. HL>Код приведи. Скорее всего, что-то намудрил с Synchronize.
Поток находится в отдельной библиотеке (но это не суть важно).
Вызывается из основной программы так:
Ту же проблему я заметил при запуске процедуры Start из основного потока программы (по простому OnClick кнопки). Так что явно проблема не в синхронизации, а в чем-то другом... Причем в самоей процедуре проблем нет, все работает идеально. А вот если вызывать главное или контекстное меню во время работы процедуры, то все встает на "паузу"...
С уважением,
Антон.
Re[4]: Пауза при открытии меню
От:
Аноним
Дата:
19.12.05 09:36
Оценка:
Здравствуйте, p1ague, Вы писали:
P>Затем идет Execute:
P>
Срочно читать справку по Synchronize. И смотреть исходники TThread.
P>Ту же проблему я заметил при запуске процедуры Start из основного потока программы (по простому OnClick кнопки). Так что явно проблема не в синхронизации, а в чем-то другом... Причем в самоей процедуре проблем нет, все работает идеально. А вот если вызывать главное или контекстное меню во время работы процедуры, то все встает на "паузу"...
Здравствуйте, HowardLovekraft, Вы писали:
HL>В догонку к предыдущему посту:
HL>"Synchronize waits for the main thread to enter the message loop and then executes the passed method".
HL>На мысли не наводит?