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

Вниз

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

 
ГореПрограммер   (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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.6 MB
Время: 0.044 c
2-1163061661
kyn66
2006-11-09 11:41
2006.11.26
Пользователи, запустившие программу.


15-1162972252
ANB
2006-11-08 10:50
2006.11.26
Рискнут ли ЦСКА на переигровку с Зенитом ?


1-1160594035
AndreyGor
2006-10-11 23:13
2006.11.26
Как работать с вордом без компонент, без COM, а напрямую?


6-1152561807
papaP
2006-07-11 00:03
2006.11.26
Проблемы с логином на сайт(юзая Indy)


4-1152899610
TWINc
2006-07-14 21:53
2006.11.26
WinProc





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский