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

Вниз

Зависает создание потока   Найти похожие ветки 

 
исследователь ©   (2007-06-29 18:42) [0]

Вот код, откуда вызываю:
procedure TForm1.btnFloodClick(Sender: TObject);
begin
b:=not b;
if b then begin
hThread:=createthread(nil,0,@lpFlooding,nil,0,threadid);
 if(hThread=0)then
 begin
     showmessage("Cannot create thread!");
     Exit;
  end;
 waitforsingleobject(hThread,INFINITE);
 btnFlood.Caption:="Прекратить!";
end
...

вот сама процедура lpFlooding:

function lpFlooding(lpData:Pointer):integer;
var
i:integer;
begin
 for i:=1 to 10 do
  showmessage("x");
// на самом деле мессага другая и в других целях, но не суть важно
 result:=1;
end;

при нажатии на кнопку все виснет! в чем проблема?


 
TUser ©   (2007-06-29 18:47) [1]

ShowMessage из потока - зря.


 
исследователь ©   (2007-06-29 18:58) [2]

да я это для примера привел, там на деле в InputBox значение вводится, и не 10 раз, а просто 2 значения


 
TUser ©   (2007-06-29 19:05) [3]

Хм, а InputBox потокобезопасен? Он же вроде - кусок VCL (не то SysUtils, не то Dialogs, не то еще что-то), разве нет?. Я просто не в курсе.


 
DiamondShark ©   (2007-06-29 19:06) [4]

А где в потоке message pump?


 
исследователь ©   (2007-06-29 19:08) [5]

а вот подскажите, как верно организовать?


 
Джо ©   (2007-06-29 19:11) [6]

> [5] исследователь ©   (29.06.07 19:08)
> а вот подскажите, как верно организовать?

Работать с пользовательским интерфейсом в контексте главного потока.


 
DiamondShark ©   (2007-06-29 19:17) [7]


> а вот подскажите, как верно организовать?

чего именно верно организовать?
Если многопоточный UI средствами VCL, то "верно" -- никак. Не предназначено оно для многопоточного использования.

Либо внятно сформулируй задачу более верзнего уровня.
Потому как приведённый код -- бессмыслица.



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

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

Наверх




Память: 0.48 MB
Время: 0.02 c
3-1177134987
roman_ln
2007-04-21 09:56
2007.07.22
DBListBox1 список не активен


9-1156499931
Galiaf
2006-08-25 13:58
2007.07.22
Система частиц в GLScene... В смысле огонь надо сделать :)


2-1182958390
TruePunk
2007-06-27 19:33
2007.07.22
отображение файлов в листбоксе


15-1182306120
Slider007
2007-06-20 06:22
2007.07.22
С днем рождения ! 20 июня 2007 среда


15-1182576092
KilkennyCat
2007-06-23 09:21
2007.07.22
Как убить продукт, или о бесплатном ПО