ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|
Delphi [Console App + TThread] |

19.10.2006, 19:33
|
|
Banned
Регистрация: 15.12.2005
Сообщений: 95
Провел на форуме: 1509352
Репутация:
132
|
|
Delphi [Console App + TThread]
Собсно ламерский вопросец - можно ли, и как организовать многопоточность в консольном приложении?
в чем у меня лажа?...:
делаю так:
Код:
program Project1;
{$APPTYPE CONSOLE}
uses Classes;
type
Thread = class(TThread)
procedure Execute; override;
end;
procedure Thread.Execute;
begin
writeln('lol');
end;
begin
Thread.Create(false);
end.
Непашет...
Затем ради интереса проделываю аналогичное с использованием формы:
Код:
unit Unit1;
interface
uses Forms, StdCtrls, Classes, Controls;
type
TForm1 = class(TForm)
Label1: TLabel;
procedure FormCreate(Sender: TObject);
end;
Thread = class(TThread)
procedure Execute; override;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure Thread.Execute;
begin
Form1.Label1.Caption:='lol';
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Thread.Create(false);
end;
end.
Фсе гламурно пашет...
В чем грабли? 
|
|
|

19.10.2006, 19:48
|
|
Banned
Регистрация: 15.12.2005
Сообщений: 95
Провел на форуме: 1509352
Репутация:
132
|
|
Не катит... 
|
|
|

19.10.2006, 19:57
|
|
Banned
Регистрация: 15.12.2005
Сообщений: 95
Провел на форуме: 1509352
Репутация:
132
|
|
Аналогично... 
|
|
|

19.10.2006, 22:05
|
|
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме: 1892597
Репутация:
836
|
|
Thread = class(TThread)
procedure Execute; override;
end;
когда создаешь класс, необходимо "создавать" класс... В пример тот же TStrings/TStringList/...
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...
|
|
|

25.10.2006, 16:50
|
|
Статус пользователя:
Регистрация: 26.07.2005
Сообщений: 568
Провел на форуме: 1290766
Репутация:
1236
|
|
DWORD WINAPI threadfunc()
{
printf("lol");
Sleep(1000);
return 0;
}
void main()
{
HANDLE hthread;
hthread = CreateThread(...);
WaitForSingleObject(hthread, INFINITE);
}
можт результата не видишь потому что главный поток соскакивает до того как второй закончит исполнение. для этого WaitFor...
__________________
 
snow white world wide
|
|
|

27.10.2006, 22:22
|
|
Участник форума
Регистрация: 11.07.2006
Сообщений: 125
Провел на форуме: 413927
Репутация:
71
|
|
Ту сноу! вместо слип(1000) тоже можно использовать ВаитФоСинглОбжект с нулевым событием и задержкой на 1000. Это вроде меньше ресурсов жрет.
|
|
|

27.10.2006, 22:30
|
|
Banned
Регистрация: 20.06.2005
Сообщений: 880
Провел на форуме: 4610226
Репутация:
1332
|
|
2da_ff эээ какие там еще ресурсы сжираются?
|
|
|

27.10.2006, 22:48
|
|
♠ ♦ ♣ ♥
Регистрация: 18.05.2006
Сообщений: 1,828
Провел на форуме: 8042357
Репутация:
3742
|
|
да.. WaitSingleObject() следит за всеми трэдами.. и никакой слип не нужен )
__________________
Привет! Меня зовут Джордж, и я хотел бы рассказать вам про реинкарнацию (ц) 2x2
|
|
|

27.10.2006, 22:55
|
|
Banned
Регистрация: 01.08.2006
Сообщений: 725
Провел на форуме: 7681825
Репутация:
4451
|
|
Вот этот код стопроцентно работает
PHP код:
program Project1;
{$APPTYPE CONSOLE}
uses Classes,StdCtrls;
type Thread = class(TThread) procedure Execute; override; end;
procedure Thread.Execute; begin writeln('lol'); end;
begin Thread.Create(false); end.
Скриншот прилагается - возможно ты не правильно компилируешь,попробуй cntrl+F9 ( компиляция без запуска ) %)

|
|
|

27.10.2006, 23:22
|
|
Banned
Регистрация: 20.06.2005
Сообщений: 880
Провел на форуме: 4610226
Репутация:
1332
|
|
2гема нахрена для этого еще класс этот дурацкий использовать? у снега все понятнее, проще и более того правильнее)
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|