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