| TIP: Click on subject to list as thread! | ANSI |
| echo: | |
|---|---|
| to: | |
| from: | |
| date: | |
| subject: | message queue thread |
PC> Someone mentioned awhile back that creating a child of HWND_OBJECT to
PC> create a message queue thread is a level of indirection that is not
PC> needed, and that it is possible to create a message queue thread without
PC> creating the child window.
That sounds like something I would say.
PC> How is this done, by using WinPostQueueMsg() instead of WinPostMsg()
PC> when sending messages to the message queue thread?
Exactly. And your worker thread, instead of registering a window
proceedure, would look something like this:
void _Optlink WorkThread(void *arg)
{
ARGS *args;
HAB hab;
QMSG qmsg;
args = (ARGS *)arg;
hab = WinInitialize(0);
args->hmqWork = WinCreateMsgQueue(hab, 0);
DosSetPrty(PRTYS_THREAD, PRTYC_IDLETIME, PRTYD_MAXIMUM, 0); //optional
while (WinGetMsg(hab, &qmsg, NULL, 0, 0)){
switch(qmsg.msg){
case WMU_PRINT:
disablePrintMenu();
DoPrint(args);
enablePrintMenu();
WinPostMsg(args->hwndDlg, WMR_PRINT1_DONE, 0, 0);
break;
case ...
}
}
WinDestroyMsgQueue(args->hmqWork);
WinTerminate(hab);
}
--- Maximus/2 3.00
* Origin: Sol 3 * Toronto * V.32 * (905)858-8488 (1:259/414)SEEN-BY: 50/99 270/101 620/243 625/100 711/401 409 410 413 430 808 809 934 SEEN-BY: 711/955 712/407 515 517 628 713/888 800/1 @PATH: 259/414 400 99 250/99 3615/50 396/1 270/101 712/515 711/808 934 |
|
| SOURCE: echomail via fidonet.ozzmosis.com | |
Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.