Форум: "Основная";
Текущий архив: 2004.11.28;
Скачать: [xml.tar.bz2];
ВнизПроблема с посылкой сообщения потоку. Найти похожие ветки
← →
Balkon (2004-11-13 12:42) [0]Добрый день Уважаемые. Помогите разобраться с проблемой (с потоками только разбираюсь, так что прошу сильно не издеваться).
Задача проста: из основного потока послать "собственное" сообщение
вторичному, и в последнем как-то отреагировать на это сообщение.
Делаю так (вродебы все по книжке, но никакой реакции вторичного потока не происходит):
unit Unit1; //Модуль основного потока
interface
...
var
Form1: TForm1;
TestThread: TTestThread;
implementation
procedure TForm1.FormCreate(Sender: TObject);
begin
TestThread := TTestThread.Create(false);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
SendMessage(TestThread.Handle,WM_MYMESSAGE,0,0);
end;
...
unit Unit2; //Модуль вторичного потока
interface
...
const
WM_MYMESSAGE = WM_USER + 100;
type
TTestThread = class(TThread)
protected
procedure Execute; override;
public
procedure WMMyMessage(var Msg: TMessage); message WM_MYMESSAGE;
end;
implementation
procedure TTestThread.WMMyMessage(var Msg: TMessage);
begin
ShowMessage("The message was recieved!");
end;
procedure TTestThread.Execute;
begin
FreeOnTerminate := true;
end;
...
Подскажите в чем ошибка. Заранее благодарен.
← →
MBo © (2004-11-13 12:46) [1]1. Сообщение с помощью Send(Post)Message посылается ОКНУ ,а не потоку. Лиюо создай окно, либо PostThreadMessage используй
2. У твоего потока нет очереди сообщений и цикла обработки сообщений - Get(Peek)Message и т.д.
← →
Balkon (2004-11-13 12:49) [2]Спасибо. Разбираюсь дальше...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.11.28;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.047 c