MFC的多线程问题:我做了个界面,上面有几个按钮,如查询数据库,显示结果,等。

MFC的多线程问题:我做了个界面,上面有几个按钮,如查询数据库,显示结果,等。现在想把查询做到另外一个线程中,请问该怎么弄?谢过各位大虾了~... MFC的多线程问题:我做了个界面,上面有几个按钮,如查询数据库,显示结果,等。现在想把查询做到另外一个线程中,请问该怎么弄?
谢过各位大虾了~
展开
 我来答
GT_C3300K
2011-10-17 · 超过18用户采纳过TA的回答
知道答主
回答量:35
采纳率:0%
帮助的人:46万
展开全部
在VC++中利用MFC编程时,线程被分为工作者线程和用户界面线程两大类。前者用于处理后台任务,执行后台任务并不会耽搁用户对应用程序的使用,即用户操作无需等待后台任务的完成。后者常用来独立的处理用户输入和响应用户事件。
一个工作者线程的实现相当的简单,只需要编写线程控制函数和启动函数就好。启动函数:
CWinThread* AfxBeginThread( AFX_THREADPROC pfnThreadProc, LPVOID pParam, int nPriority = THREAD_PRIORITY_NORMAL, UINT nStackSize = 0, DWORD dwCreateFlags = 0, LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL );
用户界面线程的实现通常需要派生线程类、重载成员函数和启动用户界面线程。从MFC的CWindThread派生用户界面线程类。父类CWinThread需要重载的函数主要有:InitInstance、ExitInstance和Run。其中InitInstance必须重载,而Run函数除非必要,一般无需重载。其中,启动函数:
CWinThread* AfxBeginThread( CRuntimeClass* pThreadClass, int nPriority = THREAD_PRIORITY_NORMAL, UINT nStackSize = 0, DWORD dwCreateFlags = 0, LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL );
建议学习Visual C++6.0编程使用技术与案例,看看多线程编程。。。。
昆仑机电
2011-10-16 · 超过32用户采纳过TA的回答
知道答主
回答量:109
采纳率:0%
帮助的人:95万
展开全部
你把查询的结果用一个全局保存。。开线程查询。。查询完成后线程自动结束。。。发送消息到窗口,窗口收到消息到显示查询到的结果。。这种简单。
好一点的做法: 开线程查询结果。。。查询到结果,用消息传参数(数据位置或索引)给窗口,窗口显示,此时线程并没有停止,仍然在自动查询。这样就可以边查询边显示。。查询完成自动结束。这个复杂一些。。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式