如何传递线程函数的参数LPVOID pParam AfxBeginThread(abc,::AfxGetMainWnd()->GetSafeHwnd(), THREAD_PRIORITY_NORMAL);UINT abc(LPVOID pParam){//}我想要每当执行一个线程时就传入线程的pParam这个参数,应该怎么做呢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 AfxBeginThread(//这里有传入pParam的参数) agree , you can define your param as a global variable ! 工作线程编程较为简单,设计思路与前面所讲的基本一致: 一个基本函数代表了一个线程,创建并启动线程后,线程进入运行状态; 如果线程用到共享资源,则需要进行资源同步处理。这种方式创建线程并启动线程时可调用函数: CWinThread*AfxBeginThread( AFX_THREADPROC pfnThreadProc, LPVOID pParam,int nPriority= THREAD_PRIORITY_NORMAL,UINT nStackSize =0,DWORD dwCreateFlags=0, LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL);参数pfnThreadProc是线程执行体函数,函数原形为: UINT ThreadFunction( LPVOID pParam)。 参数pParam是传递给执行函数的参数; 参数nPriority是线程执行权限,可选值: THREAD_PRIORITY_NORMAL、THREAD_PRIORITY_LOWEST、THREAD_PRIORITY_HIGHEST、THREAD_PRIORITY_IDLE。 参数dwCreateFlags是线程创建时的标志,可取值CREATE_SUSPENDED,表示线程创建后处于挂起状态,调用ResumeThread函数后线程继续运行,或者取值“0”表示线程创建后处于运行状态。 返回值是CWinThread类对象指针,它的成员变量m_hThread为线程句柄,在Win32 API方式下对线程操作的函数参数都要求提供线程的句柄,所以当线程创建后可以使用所有Win32 API函数对pWinThread->m_Thread线程进行相关操作。 注意:如果在一个类对象中创建和启动线程时,应将线程函数定义成类外的全局函数。 2. 用户接口线程 基于MFC的应用程序有一个应用对象,它是CWinApp派生类的对象,该对象代表了应用进程的主线程。当线程执行完并退出线程时,由于进程中没有其他线程存在,进程自动结束。类CWinApp从CWinThread派生出来,CWinThread是用户接口线程的基本类。我们在编写用户接口线程时,需要从CWinThread派生我们自己的线程类,ClassWizard可以帮助我们完成这个工作。 先用ClassWizard派生一个新的类,设置基类为CwinThread。注意:类的DECLARE_DYNCREATE和IMPLEMENT_DYNCREATE宏是必需的,因为创建线程时需要动态创建类的对象。根据需要可将初始化和结束代码分别放在类的InitInstance和ExitInstance函数中。如果需要创建窗口,则可在InitInstance函数中完成。然后创建线程并启动线程。可以用两种方法来创建用户接口线程,MFC提供了两个版本的AfxBeginThread函数,其中一个用于创建用户接口线程。第二种方法分为两步进行:首先,调用线程类的构造函数创建一个线程对象;其次,调用CWinThread::CreateThread函数来创建该线程。线程建立并启动后,在线程函数执行过程中一直有效。如果是线程对象,则在对象删除之前,先结束线程。CWinThread已经为我们完成了线程结束的工作。 将图片读入内存的问题。 vc中如何实现实时的快速显示数据(对话框上与document-view结构) C++Builder调用VC编写的ActiveX控件问题,在线等。。。 取视图类FormView的指针 各位在cad下搞过ado编程的进来看一下 求救:如何把一个字符串按照要求分割成几段,并存储到一个数组中? 急!!!急!!!在线等待 webbrowser 内存释放 求教关于VC++6.0的一个问题 怎样得到哪个硬盘是主盘,哪个是从盘? 曲线插值的问题 IE自定义工具栏的自动显示
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货