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

Вниз

Threads... (inside)   Найти похожие ветки 

 
Fellomena   (2002-03-20 10:49) [0]

Всем привет ! Объясните мне plz что происходит, когда я из цикла
запускаю поток, цикл заканчивается и программа тоже, а поток всё ещё работает ?
Он ведь по идее должен бцть уничтожен - так ? (программа не в WindowsLoop-е работает).
И в таком случае надо использовать, imho, WaitForSingleObject - так ?
Что бы понятно было о чём речь, код:

...
DO j = 1, count

if (j.EQ.count) then
ThreadHandle = CreateThread(0, 0, MyThread, 0, &
0, ID)
WaitResult = WaitForSingleObject (ThreadHandle, WAIT_INFINITE)
m = CloseHandle (ThreadHandle)
print *, j
EndIf

if (((j.GT.count2) .and. (mod(j,count2).EQ.0)) then

! ...
ThreadHandle = CreateThread(0, 0, MyThread, 0, &
! ... 0, ID)
m = CloseHandle (ThreadHandle)
print *, j
EndIf

End Do
! ...
! процедура, которая запускается в потоке
subroutine MyThread()
use dfmt

print *, "Thread work !!!"
CALL EXITTHREAD(0)
end subroutine

Можно я на Паскаль перебивать не буду - и так всё ясно, imho.
Так вот, при выполнении этого кода значения j выводятся на 1 больше, чем "Thread work !!!" (хотя не всегда)
Почему так ?



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

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

Наверх




Память: 0.46 MB
Время: 0.018 c
7-323
B1ADE
2001-12-25 00:46
2002.04.01
КАК Включить и ВЫКЛЮЧИТЬ КЛАВУ !!!


7-326
LinX
2001-12-21 01:09
2002.04.01
Виртуальный принтер


4-363
Di_wind
2002-01-29 21:38
2002.04.01
Нужна помощь.


4-364
Di_wind
2002-01-30 23:44
2002.04.01
Я наверно всех достал уже,но все-же


3-7
Malder
2002-03-05 19:23
2002.04.01
Как отменить транзакцию в триггере ?