有关多线程何时开始执行……

何哀何欢 2003-01-30 02:40:11
当按下 ID_OK 时, Thread 函数 从何时开始执行?



0. DWORD WINAPI Thread(LPVOID lpvParam) //需要执行的线程函数
{

//do something

return(0);
}
....

1. void Dlg_OnCommand (HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
2. {
3. switch (id)
4. {
5. case IDOK: //创建一个线程:

6. hThread =(HANDLE)_beginthreadex(0, 0,Thread,(LPVOID)lpParam, 0, &dwThreadId);

7. CloseHandle(hThread);

8. break; //可以肯定 从创建至此 Thread函数 不会执行

case IDCANCEL:

break;
11. }

12. }

....

14. BOOL CALLBACK Dlg_Proc (HWND hwnd, UINT uMsg,WPARAM wParam, LPARAM lParam)
{


15. switch (uMsg)
{

16. case (message):

17. return (SetDlgMsgResult(Dlg_OnCommand(hwnd,
LOWORD(wParam),
(HWND)lParam,(UINT)HIWORD(wParam))));
18. }

19. return(FALSE);

20. }

....
...全文
52 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sh210 2003-04-10
  • 打赏
  • 举报
回复
mark
何哀何欢 2003-01-31
  • 打赏
  • 举报
回复
这段程式也可以是这样的:

BOOL CALLBACK Dlg_Proc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_INITDIALOG:
.....
return 0;

case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDOK:
Thread = chBEGINTHREADEX( NULL,0,Thread2,(LPVOID)hwnd, 0, &ids);
// CloseHandle(Thread); 有没有无所谓,不影响。只是规范写法而已
Sleep(5000);//★
break;

case IDCANCEL:
......
break;

}
Sleep(5000);//★
}
return(FALSE);
}


现在我想问的是:为什么在执行完整个Dlg_Proc 后,线程才开始执行?
因为 系统白白在两个★处等了10秒 而没有做任何事,说明线程只是初始化,而没有运行线程函数?

那么线程函数的开始时机是什么呢?为何非要等窗口过程退出后才开始执行?
何哀何欢 2003-01-31
  • 打赏
  • 举报
回复
已解决。由于window为了确保窗口函数不会被过长时间的耽搁,拒绝在窗口函数中执行多线程
HKer_007 2003-01-30
  • 打赏
  • 举报
回复
要CloseHandle(hThread);干什么?
return(0);足够了。
bullfinch 2003-01-30
  • 打赏
  • 举报
回复
应该是无法确定的
icansaymyabc 2003-01-30
  • 打赏
  • 举报
回复
这简单,
当按下 ID_OK 时,线程被创建后就进入了执行队列。
接下来,操作系统根据队列调度法则决定他的执行。如果系统非常空闲可以是立即执行,系统繁忙可以在n秒之后开始执行。每次运行都可以不同。


danmao 2003-01-30
  • 打赏
  • 举报
回复
5. case IDOK: //创建一个线程:

6. hThread =(HANDLE)_beginthreadex(0, 0,Thread,(LPVOID)lpParam, 0, &dwThreadId);

7. CloseHandle(hThread);

8. break; //可以肯定 从创建至此 Thread函数 不会执行

楼主,搞清楚多线程的概念。
从宏观上说两个线程从6行就开始了!!
是你在7行上close的。
QT3.3中文白皮书,转自红联.作者说是翻词典给翻译出来的,对学QT编程的人应该有些帮助. 目录 1 介绍 …………………………………………………………………………………………4 1.1 执行摘要………………………………………………………………………………4 2 窗口部件 ……………………………………………………………………………………5 2.1 一个“Hello”的例子 ………………………………………………………………5 2.2 内建窗口部件…………………………………………………………………………6 2.3 自定义窗口部件………………………………………………………………………7 3 信号与槽 ……………………………………………………………………………………8 3.1 一个简单的信号与槽的例子…………………………………………………………9 3.2 元对象编译器…………………………………………………………………………10 4 图形界面程序 ………………………………………………………………………………11 4.1 主窗口类 ……………………………………………………………………………11 4.2 多文档接口……………………………………………………………………………13 4.3 对话框…………………………………………………………………………………13 4.4 锚接窗口………………………………………………………………………………14 4.5 设置……………………………………………………………………………………15 4.6 多线程…………………………………………………………………………………15 5 QT 设计器……………………………………………………………………………………15 5.1 Qt 助手 ………………………………………………………………………………16 5.2 图形界面程序实例 ……………………………………………………………………17 6 2D/3D 图形 …………………………………………………………………………………18 6.1 2D 图形 ………………………………………………………………………………18 6.2 3D 图形 ………………………………………………………………………………21 6.3 一个3D 实例 …………………………………………………………………………22 7 数据库…………………………………………………………………………………………24 7.1 执行SQ 命令…………………………………………………………………………24 7.2 数据相关部件 …………………………………………………………………………26 8 国际化…………………………………………………………………………………………26 8.1 Unicode ………………………………………………………………………………27 8.2 文本入口和渲染 ………………………………………………………………………27 8.3 翻译应用程序 …………………………………………………………………………27 8.4 Qt 语言学家……………………………………………………………………………28 9 风格与主题……………………………………………………………………………………29 9.1 内建风格 ………………………………………………………………………………29 9.2 风格相关部件 …………………………………………………………………………29 9.3 自定义风格 ……………………………………………………………………………29 10 布局…………………………………………………………………………………………30 10.1 内建布局管理器 ……………………………………………………………………30 10.2 嵌套的布局 …………………………………………………………………………31 10.3 自定义布局 …………………………………………………………………………32 11 事件…………………………………………………………………………………………32 11.1 事件的产生 …………………………………………………………………………32 11.2 事件的传递 …………………………………………………………………………32 12 输入/输出与网络 …………………………………………………………………………33 12.1 文件输入/输出………………………………………………………………………33 12.2 XM …………………………………………………………………………………34 12.3 进程间
QT3.3中文白皮书,转自红联.作者说是翻词典给翻译出来的,对学QT编程的人应该有些帮助. 目录 1 介绍 …………………………………………………………………………………………4 1.1 执行摘要………………………………………………………………………………4 2 窗口部件 ……………………………………………………………………………………5 2.1 一个“Hello”的例子 ………………………………………………………………5 2.2 内建窗口部件…………………………………………………………………………6 2.3 自定义窗口部件………………………………………………………………………7 3 信号与槽 ……………………………………………………………………………………8 3.1 一个简单的信号与槽的例子…………………………………………………………9 3.2 元对象编译器…………………………………………………………………………10 4 图形界面程序 ………………………………………………………………………………11 4.1 主窗口类 ……………………………………………………………………………11 4.2 多文档接口……………………………………………………………………………13 4.3 对话框…………………………………………………………………………………13 4.4 锚接窗口………………………………………………………………………………14 4.5 设置……………………………………………………………………………………15 4.6 多线程…………………………………………………………………………………15 5 QT 设计器……………………………………………………………………………………15 5.1 Qt 助手 ………………………………………………………………………………16 5.2 图形界面程序实例 ……………………………………………………………………17 6 2D/3D 图形 …………………………………………………………………………………18 6.1 2D 图形 ………………………………………………………………………………18 6.2 3D 图形 ………………………………………………………………………………21 6.3 一个3D 实例 …………………………………………………………………………22 7 数据库…………………………………………………………………………………………24 7.1 执行SQ 命令…………………………………………………………………………24 7.2 数据相关部件 …………………………………………………………………………26 8 国际化…………………………………………………………………………………………26 8.1 Unicode ………………………………………………………………………………27 8.2 文本入口和渲染 ………………………………………………………………………27 8.3 翻译应用程序 …………………………………………………………………………27 8.4 Qt 语言学家……………………………………………………………………………28 9 风格与主题……………………………………………………………………………………29 9.1 内建风格 ………………………………………………………………………………29 9.2 风格相关部件 …………………………………………………………………………29 9.3 自定义风格 ……………………………………………………………………………29 10 布局…………………………………………………………………………………………30 10.1 内建布局管理器 ……………………………………………………………………30 10.2 嵌套的布局 …………………………………………………………………………31 10.3 自定义布局 …………………………………………………………………………32 11 事件…………………………………………………………………………………………32 11.1 事件的产生 …………………………………………………………………………32 11.2 事件的传递 …………………………………………………………………………32 12 输入/输出与网络 …………………………………………………………………………33 12.1 文件输入/输出………………………………………………………………………33 12.2 XM …………………………………………………………………………………34 12.3 进程间通信 …………………………………………………………………………34 12.4 网络 …………………………………………………………………………………34 13 集合类………………………………………………………………………………………35 13.1 基于值的集合 ………………………………………………………………………36 13.2 基于指针的集合 ……………………………………………………………………36 14 插件和动态连接库…………………………………………………………………………36 14.1 插件 …………………………………………………………………………………36 14.2 动态连接库 …………………………………………………………………………37 15 特殊平台扩展………………………………………………………………………………37 15.1 ActiveQT ……………………………………………………………………………37 15.2 Motif ………………………………………………………………………………38 16 Qt 的体系结构 ……………………………………………………………………………38 16.1 微软Windows ……………………………………………………………………39 16.2 X11 …………………………………………………………………………………39 16.3 Mac OS X …………………………………………………………………………40 16.4 嵌入式 inux ………………………………………………………………………40 17 Qt 开发世界 ………………………………………………………………………………40 索引 ……………………………………………………………………………………………40

15,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧