Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Зависает создание потока


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

Вот код, откуда вызываю:
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;

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


DiamondShark   (2007-06-29 19:17:00) [1]


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

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

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


Джо   (2007-06-29 19:11:00) [2]

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

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


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

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


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

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


TUser   (2007-06-29 19:05:00) [5]

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


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

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


TUser   (2007-06-29 18:47:00) [7]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо