![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Разъясните ситуацию [D6, WinXP]
Махно © (2010-02-24 10:29:00)Удалено модератором
Примечание: Делай нормальные заголовки, на в потрепаться же
Медвежонок Пятачок (2010-02-24 11:46:00) [1]может ли он разрывать выполнение работы основного потока.
Нет, не может.
Что дальше?
Медвежонок Пятачок (2010-02-24 11:44:00) [2]Содержимое списка может меняться еще в нескольких местах.
Предлагаешь лечить по фотографии без самой фотографии?
Зачем здесь твой "схематичный код"?
Чтобы мы угадали что у тебя ошибка в неприведенной сдесь семнадцатой строке?
Медвежонок Пятачок (2010-02-24 11:42:00) [3]Содержимое списка может меняться еще в нескольких местах.
Какая разница?
Я сюда написал не потому, что у меня сложный код
Странно что вообще у такого тру-программера есть проблемы.
Он же наперед знает, что поможет, а что не поможет.
К чему тогда вопросы?
Махно (2010-02-24 11:37:00) [4]Содержимое списка может меняться еще в нескольких местах.
В чем и суть, что обработчик по таймеру общий для всех изменений. Тут юзер добавил, там удалил, тут из потока изменения произошли, тут по времени пора список подправить и т.д. Все изменения хранятся в списке, если по таймеру на данных момент содержимое списка не соответствует нужному - он модифицируется. Такой подход меня устраивает, т.к. в каждом случае понятно что происходит.
Я сюда написал не потому, что у меня сложный код, а потому, чтобы разобраться, с обработчиком потока - может ли он разрывать выполнение работы основного потока. Смотря в код вызова OnTerminated я этого не понял.
Медвежонок Пятачок (2010-02-24 11:22:00) [5]Думаю, что AV получается не из-за того, что используется таймер.
А я сказал что ав у тебя из за таймера?
У тебя спагетти - код, поймать ошибку в котором сложно.
Упрощай код.
Махно (2010-02-24 11:20:00) [6]Использовать таймер или не использовать - дело второе. Должно работать как с таймером так и без него. Сейчас я не могу понять, почему получается AV. Думаю, что AV получается не из-за того, что используется таймер.
Медвежонок Пятачок (2010-02-24 11:20:00) [7]твоя архиполезная работа начинается только после ифа.
иф проверяет значение поля.
поле модифицируется только в OnThreadTerminate и нигде больше.
И зачем здесь таймер? /* см. [3] */
Махно (2010-02-24 11:18:00) [8]Содержимое в обработчиках разное, каждый делает свое дело.
Таймер удобен тем, что мне нужно (например) за 5 секунд до определенного момента сделать со списком определенную манипуляцию. Как мне это делать без таймера?
Медвежонок Пятачок (2010-02-24 11:07:00) [9]место для твоего ифа - это метод OnThreadTerminate
Медвежонок Пятачок (2010-02-24 11:05:00) [10]т.к. проверку надо делать регулярно
зачем ее делать регулярно?
у тебя переменные в листе модифицирует святой дух?
нет.
их можифицируют нитки.
они пусть и сигнализируют что пора делать иф
Медвежонок Пятачок (2010-02-24 11:03:00) [11]ты когда складываешь два и два, то тоже вешаешь таймер, чтобы поймать момент, когда результат сложения уже готов?
Махно (2010-02-24 10:58:00) [12]Критическая секция не поможет, т.к. обработчики работают в одном потоке.
А таймер самая удобная в этом случае вещь, т.к. проверку надо делать регулярно, через определенный промежуток времени.
Медвежонок Пятачок (2010-02-24 10:56:00) [13]1. добавить критическую секцию
2. убрать таймер.