VC创建线程问题总结
2010-12-17 20:09
295 查看
今天在调试函数的时候,做了两个线程,一个线程用来发送消息,一个线程用来接收消息并将消息输出到文件。
可是,在函数执行的时候发现,发送线程线程创建成功,但是却总是不能执行到线程内。一头雾水,检查半天才发现,原来是main()函数中只创建了两个线程,线程创建成功即返回,根本没有线程执行的时间!
修改的方法很简单在main()函数return之前Suspendthread(Getcurrentthread())就可以了。
还有一个问题就是,接收函数接收消息后存储到文件中,最后的几条消息用fprintf()却没有保存到文件中。原因是系统先将其放入缓存中,以致最后的消息总是不能写到文件,最后的解决方法是在fprintf()函数后加fflush()。对于某些函数现将输出存到缓存里的情况也可以使用。
可是,在函数执行的时候发现,发送线程线程创建成功,但是却总是不能执行到线程内。一头雾水,检查半天才发现,原来是main()函数中只创建了两个线程,线程创建成功即返回,根本没有线程执行的时间!
修改的方法很简单在main()函数return之前Suspendthread(Getcurrentthread())就可以了。
还有一个问题就是,接收函数接收消息后存储到文件中,最后的几条消息用fprintf()却没有保存到文件中。原因是系统先将其放入缓存中,以致最后的消息总是不能写到文件,最后的解决方法是在fprintf()函数后加fflush()。对于某些函数现将输出存到缓存里的情况也可以使用。
相关文章推荐
- (菜鸟级别)解决用VC创建新线程易出的问题error C2664: 'CreateThread' : cannot convert parameter 3 from 'unsigned long (void *)' to 'unsigned long (_
- 用VC创建新线程易出的问题error C2664: 'CreateThread' : cannot convert parameter 3 from 'unsigned long (void *)' to 'unsigned long (__stdcall
- Java总结(十)—实现Runnable接口创建线程,线程安全同步,死锁(哲学家进餐问题),读写锁
- 关于Win32 API(VC作为程序设计语言)的创建线程,解决互斥访问临界资源问题
- 线程间操作无效: 从不是创建控件“Control Name'”的线程访问它问题的解决方案及原理分析
- java线程同步问题的总结
- 利用委托解决多线程中“不是此控件创建的线程”的问题
- 程序员面试金典——解题总结: 9.16线程与锁 16.1问题:线程和进程有什么区别?
- VC6创建single document 不勾选 Docking toolbar 或Initial status bar崩溃问题
- 多线程的安全问题。 创建线程的两种方式区别
- VC----MFC对象的创建总结
- Linux C 循环创建线程问题!!300 个线程 内存不足!!
- 请教vc下线程问题???
- Java多线程总结(一):Java两种创建线程方式的比较
- VC如何创建一个新的线程
- 类成员函数创建线程和MFC多线程UI更新问题
- vc 线程创建关闭
- VC运行库版本不同导致链接.LIB静态库时发生重复定义问题的一个案例分析和总结
- pthread创建线程及遇到问题解决
- VC如何对新创建的一个线程暂停或重启