![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблемы с нитями. [D5, Win95/98, WinME, NT4, Win2k, WinXP]
Oxy © (2002-12-09 01:10:00)Вобщем проблема такая. Запускаю несколько раз подряд нить таким образом
CreateThread(nil,0,@ThreadExecProc,@MyVar,0,thread_id);
MyVar каждый раз принимает разные значения. Но когда нити начинают работать, в их теле MyVar, который я передавал, все время один и тот же и равняется тому MyVar? который я передавал последним. Где грабли?
Да, процедура нити описывается так
Procedure ThreadExecProc(param:PDWORD);stdcall;
Oxy (2002-12-09 09:14:00) [1]Ага, понял. Спасибо.
Digitman (2002-12-09 08:38:00) [2]MyVar := 1;
//параметр - адрес пер-й MyVar, по этому адресу в этот момент
//лежит "единица"
CreateThread(nil,0,@ThreadExecProc,@MyVar,0,thread_id);
MyVar := 2;
//параметр - адрес ТОЙ ЖЕ пер-й MyVar, по ЭТОМУ ЖЕ адресу в этот момент
//уже лежит "двойка"
CreateThread(nil,0,@ThreadExecProc,@MyVar,0,thread_id);