Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.26;
Скачать: CL | DM;

Вниз

Ошибка в выполнении параллельного потока   Найти похожие ветки 

 
ГореПрограммер   (2006-11-07 15:11) [40]


> for i := 0 to ar_excel.count - 1 do
>  begin
>    if Terminated then
>      Break;
>    index:=i;
>    Synchronize(sinform);
>  end;

Да вроде по этому коду он должен выполнится ar_excel.count число раз. а не бесконечно


 
Сергей М. ©   (2006-11-07 15:13) [41]


> Synchronize(sinform);


Закомментарь эту строчку - получишь желаемое.


 
Сергей М. ©   (2006-11-07 15:17) [42]

А если не получишь, то рассказывай подробно, что такое ar_excel, откуда он взялся ..


 
Anatoly Podgoretsky ©   (2006-11-07 15:25) [43]

> ГореПрограммер  (07.11.2006 15:11:40)  [40]

Так оно и есть и у меня есть подобные потоки, как написано так и работает - ar_excel.count число раз.
Убери Synchronize


 
ГореПрограммер   (2006-11-07 16:02) [44]


> Так оно и есть и у меня есть подобные потоки, как написано
> так и работает - ar_excel.count число раз.
> Убери Synchronize
>

а как тогда выполнять
> loadip(ar_excel.zaps[index].mac,index);
> getminup(ar_excel.zaps[index].id);

?


 
Сергей М. ©   (2006-11-07 16:05) [45]


> ГореПрограммер   (07.11.06 16:02) [44]


> а как тогда выполнять


Каком кверху.
Это намек на то, что в одной из этих п/программ у тебя ошибка.


 
MetalFan ©   (2006-11-07 16:30) [46]

класс ребята! групповая удаленная отладка))))


 
Anatoly Podgoretsky ©   (2006-11-07 16:53) [47]

> ГореПрограммер  (07.11.2006 16:02:44)  [44]

Ты убрал? Проблема исчезла или нет?


 
Anatoly Podgoretsky ©   (2006-11-07 16:53) [48]

> MetalFan  (07.11.2006 16:30:46)  [46]

Промывание мозгов через одно место


 
ГореПрограммер   (2006-11-07 16:54) [49]


>
> Ты убрал? Проблема исчезла или нет?

да, сейчас пытаюсь понять каким образом SQL запрос может такое вызвать такие последствия...


 
Сергей М. ©   (2006-11-07 16:57) [50]

сейчас выяснится, что автор слыхом не слыхивал ни  про потоконебезопасность  объектов доступа к СУБД, ни про Co[Un]Initialize ..

горе-прграммер. одним словом)..


 
Percent   (2006-11-07 16:58) [51]

for i := 0 to ar_excel.count - 1 do
begin
 if Terminated then
   Break;
 index:=i;
 Synchronize(sinform);
end;


Прикольный "поток"... Чему равно ar_excel.count?


 
ГореПрограммер   (2006-11-07 17:01) [52]


> Прикольный "поток"... Чему равно ar_excel.count?

числу


 
Сергей М. ©   (2006-11-07 17:03) [53]


> ГореПрограммер   (07.11.06 17:01) [52]



> числу


Да неужели ?!) ... Вот это новость ))


 
ГореПрограммер   (2006-11-07 17:04) [54]


> Да неужели ?!) ... Вот это новость ))

каков вопрос, таков ответ )


 
Сергей М. ©   (2006-11-07 17:09) [55]


> ГореПрограммер   (07.11.06 17:04) [54]


Ну-ну.
ПРодолжай умничать.

Проблема-то - у тебя, а не у нас.


 
ГореПрограммер   (2006-11-07 17:13) [56]


> Ну-ну.
> ПРодолжай умничать.
>
> Проблема-то - у тебя, а не у нас.

Умничать ? да нет, вроде даже не пытался

> ГореПрограммер   (07.11.06 16:54) [49]
>
>
> >
> > Ты убрал? Проблема исчезла или нет?
>
> да, сейчас пытаюсь понять каким образом SQL запрос может
> такое вызвать такие последствия...


 
MetalFan ©   (2006-11-07 17:41) [57]


> Сергей М. ©   (07.11.06 16:57) [50]
>
> сейчас выяснится, что автор слыхом не слыхивал ни  про потоконебезопасность
>  объектов доступа к СУБД, ни про Co[Un]Initialize ..
>
> горе-прграммер. одним словом)..


это и так уже понятно


 
ANB ©   (2006-11-07 18:28) [58]

Таки глупый вопрос - а нафига тут вообще поток ? Чтобы был ?


 
MetalFan ©   (2006-11-07 18:39) [59]

>[58]
я тож так сказал в [7] ;)


 
ГореПрограммер   (2006-11-08 09:33) [60]

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


 
Сергей М. ©   (2006-11-08 09:57) [61]


> ГореПрограммер   (08.11.06 09:33) [60]


> Умничать ? да нет, вроде даже не пытался


Знач мне показалось) ... Я-то, дурак, думал, что конкретное значение твоих данных типа integer могут быть равными попугаям, авоськам, да всему чему угодно ... А тут вон оно как дело-то певернулось - "числу", оказывается ..)

Мда ..

Ну так ты оттрассировал пошагово проблемный код ?


 
ГореПрограммер   (2006-11-08 10:13) [62]


> Ну так ты оттрассировал пошагово проблемный код ?

В том- то и дело, что да. Ни в одной из тех двух процедур зацикленности не получается. Проверял даже проще: без потока исполнял цикл с этими процедурами, выполнился он корректно.


 
ГореПрограммер   (2006-11-08 10:16) [63]

Еще вопрос: а поток должен быть обязательно вынесен в отдельный модуль или это не влияет ?


 
Anatoly Podgoretsky ©   (2006-11-08 10:19) [64]


> Смысл в том, чтобы после запуска программы в фоне из базы
> загружались дополнительные данные, не мешая при этом работе
> программы.

Смысл хороший, а реализация.
И случайно не АДО ли ты используешь?


 
ГореПрограммер   (2006-11-08 10:23) [65]


> И случайно не АДО ли ты используешь?

DbExpress


 
DVM ©   (2006-11-08 10:31) [66]


> а поток должен быть обязательно вынесен в отдельный модуль
> или это не влияет ?

Не влияет, но когда в одном модуле область видимости другая несколько. Дружественные классы так сказать образуются.


 
Anatoly Podgoretsky ©   (2006-11-08 10:58) [67]

> DbExpress
А он случайно не использует асинхронные запросы


 
Сергей М. ©   (2006-11-08 11:01) [68]


> ГореПрограммер   (08.11.06 10:13) [62]


Тогда рассказывай, с какой луны у тебя свалился ar_excel ..


 
ГореПрограммер   (2006-11-08 11:03) [69]

ar_excel это массив данных типа record
Данные загружаются при запуске программы после запуска мне необходимо для уже загруженных данных подгрузить несколько полей из базы данных.


 
Сергей М. ©   (2006-11-08 11:06) [70]


> ar_excel это массив данных типа record


И откуда у массива (!) взялось нечто выглядящее как count ?
Давай уже показывай декларацию ...


 
ГореПрограммер   (2006-11-08 11:17) [71]


> Сергей М. ©   (08.11.06 11:06) [70]

Массив динамический. вместо count можно, безусловно, и использовать length, но было изначально сделано так. Count это просто колличество записей в массиве.
rzap_excel=record
 id:string;
 sat:string;
 stat:string;
 mac:string;
.....
....
....
end;
azap_excel=record
 count:integer;
 zaps:array of rzap_excel;
end;
var
ar_excel:azap_excel;


 
Anatoly Podgoretsky ©   (2006-11-08 12:20) [72]

> DVM  (08.11.2006 10:31:06)  [66]

Какая же другая, когда это находится в секции public глобальнее уровня нет.


 
Anatoly Podgoretsky ©   (2006-11-08 12:22) [73]

> ГореПрограммер  (08.11.2006 11:17:11)  [71]

И доступ к azap_excel наверно возможен из разных потоков


 
DVM ©   (2006-11-08 12:31) [74]


> Какая же другая, когда это находится в секции public

если public тогда без разницы конечно


 
Сергей М. ©   (2006-11-08 12:48) [75]


> Count это просто колличество записей в массиве


Вот так и говори : count - это поле некоей записи)

Что скажешь насчет [73] ?


 
ГореПрограммер   (2006-11-08 12:56) [76]


> И доступ к azap_excel наверно возможен из разных потоков

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


 
Сергей М. ©   (2006-11-08 13:03) [77]


> изменений внутри этой переменной не происходит


Это все на словах.

А теперь подтверди это реальным кодом ..


 
Anatoly Podgoretsky ©   (2006-11-08 13:18) [78]

> Сергей М.  (08.11.2006 13:03:17)  [77]

Зачем на словах, у него же явно много потоков запускается, ведь именно на это и жалуется.


 
ГореПрограммер   (2006-11-08 13:21) [79]


> Зачем на словах, у него же явно много потоков запускается,
>  ведь именно на это и жалуется.

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


 
ANB ©   (2006-11-08 13:30) [80]


> ГореПрограммер   (08.11.06 13:21) [79]

1. ИМХО ты доп.поток умудряешься 2 раза запустистить. покажи код запуска потока.
2. Пока доп поток работает - чего главный делать то должен ? Если он без данных, загруженных доп.потоком работать не может - то лучше глянуть в сторону асинхронки, понадежнее будет.



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

Текущий архив: 2006.11.26;
Скачать: CL | DM;

Наверх




Память: 0.62 MB
Время: 0.034 c
3-1158829288
vodvorezlaya
2006-09-21 13:01
2006.11.26
Как проверить колличество одинаковых записей в поле


15-1162931282
Ice
2006-11-07 23:28
2006.11.26
Помогите потестить программу.


1-1160768320
guav
2006-10-13 23:38
2006.11.26
Преобразование вариантных типов


15-1162841746
ProgRAMmer Dimonych
2006-11-06 22:35
2006.11.26
Возникла проблема. Поворот треугольника


15-1162088852
Копир
2006-10-29 05:27
2006.11.26
Здравствуйте мои дорогие друзья!