Windows 的多线程程序设计初步.doc

Windows 的多线程程序设计初步.doc

ID:61462382

大小:23.50 KB

页数:7页

时间:2021-02-02

Windows 的多线程程序设计初步.doc_第1页
Windows 的多线程程序设计初步.doc_第2页
Windows 的多线程程序设计初步.doc_第3页
Windows 的多线程程序设计初步.doc_第4页
Windows 的多线程程序设计初步.doc_第5页
资源描述:

《Windows 的多线程程序设计初步.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Windows的多线程程序设计初步2005-09-3009:23作者:Amoon100出处:blog责任编辑:方舟  一般情况下多线程编程多采用MFC类库实现,那么如果不使用MFC如何进行多线程程序设计呢?本文将就这个问题进行讨论:  微软在WindowsAPI中提供了建立新的线程的函数CreateThread,它的语法如下:hThread=CreateThread(&security_attributes,dwStackSize,ThreadProc,pParam,dwFlags,&idThread);  第一个参数是指向SECURITY_ATTR

2、IBUTES型态的结构的指针。在Windows98中忽略该参数。在WindowsNT中,它被设为NULL。第二个参数是用于新线程的初始堆栈大小,默认值为0。在任何情况下,Windows根据需要动态延长堆栈的大小。  CreateThread的第三个参数是指向线程函数的指标。函数名称没有限制,但是必须以下列形式声明:DWORDWINAPIThreadProc(PVOIDpParam);   CreateThread的第四个参数为传递给ThreadProc的参数。这样主线程和从属线程就可以共享数据。  CreateThread的第五个参数通常为0,但当建

3、立的线程不马上执行时为旗标CREATE_SUSPENDED。线程将暂停直到呼叫ResumeThread来恢复线程的执行为止。第六个参数是一个指标,指向接受执行绪ID值的变量。  大多数Windows程序写作者喜欢用在PROCESS.H表头文件中声明的C执行时期链接库函数_beginthread。它的语法如下:hThread=_beginthread(ThreadProc,uiStackSize,pParam);  它更简单,对于大多数应用程序很完美,这个线程函数的语法为:void__cdeclThreadProc(void*pParam);  在建立

4、多线程的Windows程序时,需要在「ProjectSettings」对话框中做一些修改。选择「C/C++」页面标签,然后在「Category」下拉式清单方块中选择「CodeGeneration」。在「UseRun-TimeLibrary」下拉式清单方块中,可以看到用于「Release」设定的「Single-Threaded」和用于Debug设定的「DebugSingle-Threaded」。将这些分别改为「Multithreaded」和「DebugMultithreaded」。这将把编译器旗标改为/MT,它是编译器在编译多线程的应用程序所需要的。 

5、 第一个demo./*********************************************************deom1---四个线程同时写一个文件(没有参数)*************************************************************/#include#include/*_beginthread,_endthread*/#include#includeusingnamespacestd;ofstre

6、amout("out.txt");voidThreadFunc1(PVOIDparam){ while(1) {  Sleep(10);  out<<"Thiswasdrawbythreadl"<

7、

8、 return0;}//demo1end----------------------------------

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。