Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2013, 14:39   #1
Дmmm
Пользователь
 
Регистрация: 26.02.2013
Сообщений: 66
По умолчанию Thread vs Timer

1) прога запускает некоторые задачи по таймерам
2) из главного меню можно запустить кое-что в Thread (считает по несколько часов)
3) если вдруг во время работы Thread-а срабатывает таймер, Thread останавливается; процедура, навешанная на событие таймера, отрабатывает нормально

Почему такое может случаться и как исправить?
Дmmm вне форума Ответить с цитированием
Старый 26.02.2013, 16:37   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Почему такое может случаться и как исправить?
(почему) между потоком и таймером есть общие данные.
(как) Избавить поток от VCL объектов. а таймер от проверки потоков.
Как это сделать. А где код?!
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 26.02.2013, 17:25   #3
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

код в студию, особенно по третьему пункту
bulldog5293 вне форума Ответить с цитированием
Старый 27.02.2013, 15:45   #4
Дmmm
Пользователь
 
Регистрация: 26.02.2013
Сообщений: 66
По умолчанию

да уж очень много там кода, извините

и из Thread и из процедуры обработчика Timer идёт обращение к одному и тому же компоненту, но он не на главной форме (в разных окнах MDI) и не визуальный. это можно считать общими данными?
Дmmm вне форума Ответить с цитированием
Старый 27.02.2013, 15:57   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Сам компонент-то может не VCL, но он ведь взаимодействует со свой формой (через те же события On<что-там>), а она VCL, значит и он становится VCL.
А был ли создан объект к которому обращается поток? Нет ->поток получил AV ->закончил свою работу. Timer не зная про это AV(оно в другом потоке!) работает нормально.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 27.02.2013 в 16:04.
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ConsoleApplication+Thread RuVarez Общие вопросы Delphi 7 07.04.2012 15:42
Thread и MVC OnlyFart ASP.NET 0 06.05.2011 11:12
Thread и элементы формы. divers Общие вопросы .NET 4 20.04.2010 18:56
Thread Cpluser Общие вопросы .NET 6 30.03.2010 23:32
Проблема с Thread Arnezami Общие вопросы .NET 2 04.10.2009 22:08