MFC的多线程问题:我做了个界面,上面有几个按钮,如查询数据库,显示结果,等。
MFC的多线程问题:我做了个界面,上面有几个按钮,如查询数据库,显示结果,等。现在想把查询做到另外一个线程中,请问该怎么弄?谢过各位大虾了~...
MFC的多线程问题:我做了个界面,上面有几个按钮,如查询数据库,显示结果,等。现在想把查询做到另外一个线程中,请问该怎么弄?
谢过各位大虾了~ 展开
谢过各位大虾了~ 展开
展开全部
在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编程使用技术与案例,看看多线程编程。。。。
一个工作者线程的实现相当的简单,只需要编写线程控制函数和启动函数就好。启动函数:
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编程使用技术与案例,看看多线程编程。。。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询