用CreateThread创建线程的问题在侯捷翻译的 win32多线程设计书中说如果主线程以外的线程进行下面操作,应该使用多线程版的C runtime library,并使用_beginthreadex()1: 在c语言中使用malloc()和free(),或是在C++中使用new和delete
2: 调用stdio.h 或io.h中声明的任何函数,包括像fopen(),open(),getchar(),wirte().所有这些函数都用到共享的数据结构以及errno。
3:使用浮点变量和浮点运算函数。
4:调用任何使用静态缓冲区的runtime函数如asctime()我的问题是:DOWRD WINAPI FunProc(LPVOID)
{
float a;
cout<<a;
}
void main();
{
HANDLE hThread;
hThread=CreateThread(NULL,0,FunProc,NULL,0,NULL);}在线程FunProc中
1:使用float a,这个浮点数,这样也不行吗???2:使用printf("a=%d",a); 这样也不行吗???3:使用int a;cout<<a; 可以吧4: 是不是用VC写多线程,一律用_beginthreadex()代替CreateThread,是不是更和谐呢
2: 调用stdio.h 或io.h中声明的任何函数,包括像fopen(),open(),getchar(),wirte().所有这些函数都用到共享的数据结构以及errno。
3:使用浮点变量和浮点运算函数。
4:调用任何使用静态缓冲区的runtime函数如asctime()我的问题是:DOWRD WINAPI FunProc(LPVOID)
{
float a;
cout<<a;
}
void main();
{
HANDLE hThread;
hThread=CreateThread(NULL,0,FunProc,NULL,0,NULL);}在线程FunProc中
1:使用float a,这个浮点数,这样也不行吗???2:使用printf("a=%d",a); 这样也不行吗???3:使用int a;cout<<a; 可以吧4: 是不是用VC写多线程,一律用_beginthreadex()代替CreateThread,是不是更和谐呢
解决方案 »
- vc 如何制作有立体感的按钮
- 一个程序有几个对话框, 可以在每一个对话框都用一个OnTimer 函数吗?这样会不会用冲突呢?
- First-chance exception in FxjCw.exe (ORAN8.DLL): 0xC0000005: Access Violation.
- 如何使TAB键按下时焦点在Edit控件和DefButton之间循环?
- 请教!!怎样用VC从注册表中把系统中的已装软件列出来?????
- 100分,急问有关字符串的问题,一定给分。。。。。。。。!!!
- 一个关于ShowWindow的问题,在线等候,立即给分,谢谢
- 对话框程序需要带参数运行,该怎么实现?
- 请问g z是什么意思
- 请问怎样创建一个空心画刷?
- 关于调用用OPENSSL加密函数的问题。
- 在Visual Studio 2010里btnst.h到哪去了?!
printf("a=%f",a); 多线程一般用_beginthreadex()可以线程安全等.
1.在Windows系统下_beginthread和_beginthreadex实际上也是调用CreateThread实现的,你可以调试跟踪到crt源码就知道了。因此就效率而言CreateThread比较高。2._beginthread和_beginthreadex是crt库,可以不依赖windows操作系统进行编译。
多谢了。如果在子线程中使用printf(),printf是stdio.h中的函数,就不能用CreateThread创建吧?
void main();
{
HANDLE hThread;
hThread=CreateThread(NULL,0,FunProc,NULL,0,NULL);
while(TRUE)
{
Sleep(1000);
}
}
{
float a;
cout<<a;
}
void main();
{
HANDLE hThread;
hThread=CreateThread(NULL,0,FunProc,NULL,0,NULL);
WaitForSingleObject(hThread,INFINITE);
CloseHandle(hThread);
}