Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Вниз

Разъясните ситуацию   Найти похожие ветки 

 
Махно   (2010-02-24 10:29) [0]

Удалено модератором
Примечание: Делай нормальные заголовки, на в потрепаться же


 
Медвежонок Пятачок ©   (2010-02-24 10:56) [1]

1. добавить критическую секцию
2. убрать таймер.


 
Махно   (2010-02-24 10:58) [2]

Критическая секция не поможет, т.к. обработчики работают в одном потоке.

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


 
Медвежонок Пятачок ©   (2010-02-24 11:03) [3]

ты когда складываешь два и два, то тоже вешаешь таймер, чтобы поймать момент, когда результат сложения уже готов?


 
Медвежонок Пятачок ©   (2010-02-24 11:05) [4]

т.к. проверку надо делать регулярно

зачем ее делать регулярно?
у тебя переменные в листе модифицирует святой дух?
нет.
их можифицируют нитки.
они пусть и сигнализируют что пора делать иф


 
Медвежонок Пятачок ©   (2010-02-24 11:07) [5]

место для твоего ифа - это метод OnThreadTerminate


 
Махно   (2010-02-24 11:18) [6]

Содержимое в обработчиках разное, каждый делает свое дело.
Таймер удобен тем, что мне нужно (например) за 5 секунд до определенного момента сделать со списком определенную манипуляцию. Как мне это делать без таймера?


 
Махно   (2010-02-24 11:20) [7]

Использовать таймер или не использовать - дело второе. Должно работать как с таймером так и без него. Сейчас я не могу понять, почему получается AV. Думаю, что AV получается не из-за того, что используется таймер.


 
Медвежонок Пятачок ©   (2010-02-24 11:20) [8]

твоя архиполезная работа начинается только после ифа.
иф проверяет значение поля.
поле модифицируется только в OnThreadTerminate и нигде больше.

И зачем здесь таймер? /* см. [3] */


 
Медвежонок Пятачок ©   (2010-02-24 11:22) [9]

Думаю, что AV получается не из-за того, что используется таймер.

А я сказал что ав у тебя из за таймера?
У тебя спагетти - код, поймать ошибку в котором сложно.
Упрощай код.


 
Махно   (2010-02-24 11:37) [10]

Содержимое списка может меняться еще в нескольких местах.

В чем и суть, что обработчик по таймеру общий для всех изменений. Тут юзер добавил, там удалил, тут из потока изменения произошли, тут по времени пора список подправить и т.д. Все изменения хранятся в списке, если по таймеру на данных момент содержимое списка не соответствует нужному - он модифицируется. Такой подход меня устраивает, т.к. в каждом случае понятно что происходит.

Я сюда написал не потому, что у меня сложный код, а потому, чтобы разобраться, с обработчиком потока - может ли он разрывать выполнение работы основного потока. Смотря в код вызова OnTerminated я этого не понял.


 
Медвежонок Пятачок ©   (2010-02-24 11:42) [11]

Содержимое списка может меняться еще в нескольких местах.

Какая разница?

Я сюда написал не потому, что у меня сложный код

Странно что вообще у такого тру-программера есть проблемы.
Он же наперед знает, что поможет, а что не поможет.

К чему тогда вопросы?


 
Медвежонок Пятачок ©   (2010-02-24 11:44) [12]

Содержимое списка может меняться еще в нескольких местах.

Предлагаешь лечить по фотографии без самой фотографии?
Зачем здесь твой "схематичный код"?
Чтобы мы угадали что у тебя ошибка в неприведенной сдесь семнадцатой строке?


 
Медвежонок Пятачок ©   (2010-02-24 11:46) [13]

может ли он разрывать выполнение работы основного потока.

Нет, не может.
Что дальше?



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.062 c
15-1264673292
Vigi
2010-01-28 13:08
2010.08.27
Часы с разными часовыми поясами


15-1268515802
Юрий
2010-03-14 00:30
2010.08.27
С днем рождения ! 14 марта 2010 воскресенье


3-1238620116
ivanoff
2009-04-02 01:08
2010.08.27
как осуществить SQL выборку только по времини


2-1268438912
Delphist
2010-03-13 03:08
2010.08.27
одна процедура для всех юнитов


15-1267515795
@!!ex
2010-03-02 10:43
2010.08.27
Опять AOL бунтует?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский