|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.11.2014, 15:39 | #1 |
Подтвердите свой е-майл
Регистрация: 11.04.2012
Сообщений: 85
|
Два потока и общие данные, как приостановить в нужный момент и в нужном месте
Длина "array of данные" меняется(SetLength в функции Allocate), а в это время потоки читают эти данные. А вдруг "array of данные" вновь расширился и переместился на Гавайи, а в это время поток уже заполучил указатель когда он был в Париже? (На строке R := @FList[FIndex]).
Добавил EnterCriticalSection, он помогает вообще? Не знаю че конкретно делает. Короче, как синхронизировать(чтоб AV 100% не было в этом коде)? PS Тест код вроде сработал, надписи появляются в рассыпном порядке то и з первого, то из второго. Код:
Код:
|
26.11.2014, 17:11 | #2 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
пусть у общего ресурса будет контроллер, который будет раздавать ресурсы потокам по мере их поступления.
|
26.11.2014, 20:08 | #3 |
Подтвердите свой е-майл
Регистрация: 11.04.2012
Сообщений: 85
|
^ Это на будущее.
Я ошибся в целом, у меня потокИ лишь складывали данные, TWaitLoad это единственный поток, который читал их. Он не знал, что в него параллельно скармливают. Сделал простенький лок и вроде все. Правда теперь из главного потока нельзя вызывать, проваливается на EnterCriticalSection(FCritical) и висит софтина, а из самодельных все нормально. Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как открыть файл в нужном месте | Fedosss | C# (си шарп) | 0 | 28.02.2013 22:10 |
Открыть chm справку в нужном месте | Человек_Борща | Общие вопросы Delphi | 3 | 10.02.2011 22:52 |
Курсор в нужном месте строки | IraPr | Microsoft Office Access | 2 | 23.05.2010 11:20 |
Как в комментарий Msgboxса вставить перенос строки в нужном месте? | Oooleg | Microsoft Office Excel | 3 | 23.07.2009 13:32 |
Как узнать какие данные в данный момент печатает принтер? | progan | Общие вопросы Delphi | 0 | 24.12.2008 09:34 |