社区
C++ Builder
帖子详情
请教如何在类中用createthread创建线程
Kenny21
2002-12-20 11:23:26
c++builder中如何在一个类里用createthread创建线程,能否给出例子,谢谢!
...全文
259
6
打赏
收藏
请教如何在类中用createthread创建线程
c++builder中如何在一个类里用createthread创建线程,能否给出例子,谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Kenny21
2002-12-21
打赏
举报
回复
能解释一下_beginthreadex里的PBEGINTHREADEX_THREADFUNC是什么吗?
HUANG_JH
2002-12-21
打赏
举报
回复
class TmyClass: public CPublicClass
{
protected :
bool m_bDisplayThreadTerminate;
DWORD dwDisplayThreadId ;
HANDLE m_hDisplayThreadHandle;
CRITICAL_SECTION m_DisplayCriticalSection;
virtual void __fastcall DisplayDataRoutine( void );
public :
//接收数据线程回调函数
static DWORD WINAPI DisplayRoutine( void *App );
void __fastcall StartThread();
void __fastcall WaitForExit();
public :
// 构造函数
TmyClass( void );
// 析造函数
~TmyClass( void );
} ;
//---------------------------------------------------------------------------
void __fastcall TmyClass::StartThread()
{
//-------------分析,显示-----------
m_bDisplayThreadTerminate= false ;
InitializeCriticalSection( &m_DisplayCriticalSection );
dwDisplayThreadId = 0;
m_hDisplayThreadHandle = (HANDLE)_beginthreadex(NULL, 0, ( PBEGINTHREADEX_THREADFUNC )DisplayRoutine, ( LPVOID )this, 0, (PBEGINTHREADEX_THREADID)&dwDisplayThreadId );
if(m_hDisplayThreadHandle == INVALID_HANDLE_VALUE)
{
Application->MessageBox("无法建立接收数据线程!", "警告", MB_OK | MB_ICONWARNING);
return ;
}
}
//---------------------------------------------------------------------------
void __fastcall TmyClass::WaitForExit()
{
m_bDisplayThreadTerminate = true ;
Sleep(100) ;
return ;
}
//---------------------------------------------------------------------------
// 显示数据线程回调函数
//---------------------------------------------------------------------------
DWORD WINAPI TmyClass::DisplayRoutine( void *App )
{
TmyClass *p = ( TmyClass * )App;
p->DisplayDataRoutine();
return( 0 );
}
//---------------------------------------------------------------------------
// 显示数据线程执行函数
//---------------------------------------------------------------------------
void __fastcall TmyClass::DisplayDataRoutine( void )
{
m_bDisplayThreadTerminate = false;
while( Application->Terminated == false && m_bDisplayThreadTerminate == false ) //
{
EnterCriticalSection( &m_DisplayCriticalSection );
DisposeCommand (); //你自己的处理函数
LeaveCriticalSection( &m_DisplayCriticalSection );
Sleep( 10 );
}
return;
}
Kenny21
2002-12-21
打赏
举报
回复
我知道PBEGINTHREADEX_THREADFUNC是什么了
需要在 .h文件里加:
typedef unsigned (WINAPI *PBEGINTHREADEX_THREADFUNC)
(LPVOID lpYourParam);
typedef unsigned *PBEGINTHREAD_THREADID;
Kenny21
2002-12-21
打赏
举报
回复
但是,这样的线程处理函数是全局的,能不能变成类的成员呢?
googoler
2002-12-20
打赏
举报
回复
for(int i=0;i<iCount;i++)
{
DWORD dwThread;
CreateThread(0,0,MessageBomb,0,0,&dwThread);
btnCount->Caption=IntToStr(iCount);
}
DWORD WINAPI __stdcall MessageBomb(void* aa)
{
AnsiString sTarget,sMsg;
sTarget=fmMain->EditComputer->Text.Trim();
sMsg=fmMain->EditMessage->Text.Trim();
fmMain->SendMessage(sTarget,sMsg);
return 0;
}
//---------------------------------------------------------------------------
copy_paste
2002-12-20
打赏
举报
回复
unsigned long __stdcall MyThreadFunc(void *lpParam)
{
// you code
return 0;
}
void __fastcall TForm::Button1Click(TObject *Sender)
{
unsigned long ThreadID;
HANDLE Handle = CreateThread(NULL, 0, MyThreadFunc, NULL, 0, &ThreadID);
CloseHandle(Handle);
}
CSDN回帖得分大全(近两年)
√vs2005调用dll的时候Initialize()函数返回错误 [VC/MFC 基础
类
] 40 ylongwu 05-21 20:486 ylongwu06-28 13:42管理√为什么我
创建
登陆框之后,然后获取登陆框的数据时候总是出现非法操作! [VC/MFC 界面] 40 chencheng8095 05-23 00:2911 xianglitian06-10 11:51管理√CFileFind::FindFile 支持通配符么? [VC/MFC 基础
类
] 100 wysbk002 05-22
转
转自http://blog.csdn.net/jiangsheng/archive/2006/03/05/615714.aspx为了便于搜索,这里尽可能保留了论坛上讨论的原文,但是这并不表示本人赞同帖子中的表述方式和观点在c++中如何
创建
一个文件? (VC/MFC 基础
类
)已知IStream *pIStream取道内容,如何将pIStream内容写到一个文件中去?http:
vc开发工作小结
一隐藏任务条上的图标第一、
创建
对话框时必须将它作为某个不可见框架窗口的子窗口;第二、这个不可见框架窗口的扩展式样必须设置 WS_EX_TOOLWINDOW;第三、保证对话框的扩展式样没有设置 WS_EX_APPWINDOW; 先在CWinApp继承
类
中建立一个不显示的顶级窗口. CFrameWnd *pFrame=new CFrameWnd();pFrame->
Create
(0,0,WS_OV
VC小结
转自http://blog.csdn.net/benny5609/archive/2007/10/05/1812266.aspx一隐藏任务条上的图标第一、
创建
对话框时必须将它作为某个不可见框架窗口的子窗口;第二、这个不可见框架窗口的扩展式样必须设置 WS_EX_TOOLWINDOW;第三、保证对话框的扩展式样没有设置 WS_EX_APPWINDOW; 先在CWinApp继承
类
中建立一个不显
【逆向】【Part 3】DLL注入
目录 一、通过自制调试器来理解其原理 1.调试器的工作原理 实现反汇编功能(重点) 重点分析exception_debug_event 重点:1.对调试器程序增加异常处理操作功能,核心API,CONTEXT结构 二、DLL注入 重点:2.DLL注入的三种基本方法 1.利用全局消息钩子(Windos消息钩取( SetWindowsHookEx() API )) 2.写注册表 3...
C++ Builder
13,825
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章