多线程开发【摘】

本文介绍了C语言中的多线程开发,包括多线程的基本概念、Sleep函数的应用及CreateThread函数的使用方法。通过实例讲解如何创建线程并传递参数,以及如何实现取消登录功能。

视频在线观看、下载地址:
http://www.rupeng.com/forum/thread-6680-1-1.html

板书
C语言也能干大事》第二十节  多线程开发
1、多线程也是所有语言中都有的一个重要特性,一通百通的一个东西。
2Sleep函数简介。为了简化问题,用Sleep函数模拟耗时操作,实际项目中用长时间数据库操作、读取大文件、网络操作等替换Sleep就可以。Sleep函数例子:msgbox 1,sleep 50000,msgbox 2。放一个额外button上去,更有效果。Sleep过程中界面是没有响应的,同理长时间的数据库操作、文件操作、网络操作等也会造成没有响应,原理简单分析:消息循环。
3CreateThread函数:CreateThread( NULL, 0, ThreadFunc, 0, 0, 0 );一般注意第3个参数即可,回调,回调函数格式。Void指针(可以指向任何类型的数据)。
DWORD WINAPI ThreadFunc( LPVOID lpParam )
{
return 0;
}
改造msgbox的例子,暂时第一个参数传NULL
CreateThread之后加一句msg,更明白主线程不会等着子线程。
小例子:取消登录功能的使用。
总结,什么叫线程。普通的执行顺序是顺序执行一句执行完成执行另外一句,但是一旦某一句执行时间很长,后面的就要等;线程(Thread)就是主干执行流程中分出去的一条线,独立于主线程运行,在主线程中只是通过CreateThread把线程调度起来,然后就继续向后执行了,不等着线程执行完毕,让分出去的线程自己折腾去。
4、给线程传递参数。回忆:给子对话框传递参数。给子线程传递参数使用第四个参数,子线程函数中lpParam参数的值就是传递过来的参数。注意传递的是指针
1
CreateThread( NULL, 0, ThreadFunc, TEXT("如鹏网"), 0, 0 );
MessageBox(NULL,(TCHAR *)lpParam,TEXT(""),MB_OK);
(2):
CreateThread( NULL, 0, ThreadFunc, hwnd, 0, 0 );
SetDlgItemText(hwnd,IDC_OK,"hello");

讲故事:数据导入。课下作业:读取data.txt,将数据导入数据库,这个整合了线程、ODBCIO操作的知识。听明白我讲的东西你只掌握了5%,只有把这个作业做出来才是真的懂了。实时显示数据处理进度,并且用户可以随时取消数据处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值