![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Использование CreateThread [D7, WinXP]
Stanislav © (2006-03-31 14:26:00)Хочу вызвать процедуру в дополнительном потоке,
Как ее рпавильно вызвать?
Вызываб так:
Windows.CreateThread(nil,0,@design,Self,0,TID);
Procedure Design (Param:Pointer);
begin
TQueryEditor (Param).DesignReport;
windows.ExitThread(0);
end;
Но почему-то код в ней выполняется покругу.
Может в ExitThread нужно что-то другое передавать?
MBo (2006-03-31 16:24:00) [1]А почему не хочешь TThread воспользоваться? Попроще будет.
Stanislav (2006-03-31 15:45:00) [2]Спасибо все работает!
Stanislav (2006-03-31 15:25:00) [3]Спасибо!
MBo (2006-03-31 15:24:00) [4]>а что в Result писать?
Обычно можно ничего не писать, или 0. Это для GetExitCodeThread нужно, если результат анализируется (редко требуется)
Stanislav (2006-03-31 15:21:00) [5]Спасибо, а что в Result писать?
MBo (2006-03-31 15:18:00) [6]>прототипу
>не нашел. Моя не соответствует?
для CreateThread:
function ThreadFunc(Param: Pointer): DWord; stdcall;
для BeginThread иначе:
type TThreadFunc = function(Parameter: Pointer): Integer;
Игорь Шевченко (2006-03-31 15:16:00) [7]Stanislav © (31.03.06 15:00) [8]
Тогда почему бы и в вопросе потоков его (VCL) не использовать ? Опять же, и в Demos примеры есть.
Stanislav (2006-03-31 15:00:00) [8]Игорь Шевченко © (31.03.06 14:57) [7]
Имеет.
Stanislav (2006-03-31 14:57:00) [9]Сергей М. © (31.03.06 14:44) [3]
Это значит она постоянно выполняется.
Игорь Шевченко (2006-03-31 14:57:00) [10]
> С классом понятно, интересует именно WinApi
Надо понимать, эта строчка
> TQueryEditor (Param).DesignReport;
является совсем WinAPI и к VCL никакого отношения не имеет ?
Stanislav (2006-03-31 14:55:00) [11]MBo © (31.03.06 14:45) [4]
1 исправил
2. должна непременно соответствовать описанному в справке прототипу
не нашел. Моя не соответствует?
3. Убрал.
MBo (2006-03-31 14:45:00) [12]>интересует именно WinApi.
во-первых, стоит BeginThread использовать, а не CreateThread
во-вторых, поточная функция должна непременно соответствовать описанному в справке прототипу
в-третьих, ни к чему ExitThread делать в конце поточной функции
Сергей М. (2006-03-31 14:44:00) [13]
> покругу
Это как ?
Stanislav (2006-03-31 14:37:00) [14]С классом понятно, интересует именно WinApi.
Игорь Шевченко (2006-03-31 14:29:00) [15]
> Хочу вызвать процедуру в дополнительном потоке,
Почему бы не поискать в Demos работу с классом TThread ?