首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

线程有关问题

2012-02-22 
线程问题BCB中有个线程类TThread,可以用它来编写多线程应用程序,我是想在BCB中能不能不用TThread这个类能

线程问题
BCB中有个线程类TThread,可以用它来编写多线程应用程序,我是想在BCB中能不能不用TThread这个类能不能定义自己的多线程类,完完全全用自己的代码来实现多线程应用程序
高手能不能给段源代码,小弟比较笨,最好能人注释。如果分不够我另开贴给分,因为我最高分只能给90分,CSDN的给分制度大家是知道的

小弟先在这里谢谢各位大哥哥们了

[解决办法]
建线程很简单的,用CreateThread就可以了:
DWORD CALLBACK test(void *p)
{
MessageBox(0, "在线程中... ", "TEST ",MB_OK);
return 0;
}


void __fastcall TForm1::Button1Click(TObject *Sender)
{
DWORD tid;
HANDLE h=::CreateThread(0,0,test,0,0,&tid);
if(!h)
{
ShowMessage( "建线程失败! ");
return;
}

}
至于将它封装成类,要看你具体的要求了
用TThread完全能满足应用要求,为什么要自己封装呢?
[解决办法]
TThread 本来就是要继承才才用的。

BCB自带了一个多线程的例子,楼主可以先看一下。
[解决办法]
// TThread.h
class TMYThread : public TThread
{
protected:
void __fastcall Execute(); //运行代码写在这里
public:
__fastcall TMYThread(bool CreateSuspended);
__fastcall ~TMYThread();
};
// TThread.cpp
//CreateSuspended 为真时表示创建线程对象时将线程处于运行状态,为假表示将线程处于挂起状态,一般传入假,然后等线程创建完闭后再调用 Resume(); 将线程唤醒
__fastcall TMYThread::TMYThread(bool CreateSuspended)
: TThread(CreateSuspended)
{
.......
//FreeOnTerminate 是TThread类的一个变量,为真时表示线程结束时自动销毁线程, FreeOnTerminate = false;
Resume();
}
void __fastcall TMYThread::Execute(){
........
}

[解决办法]
楼主觉得TThread类用的不爽,完全可以自己从新封装一个线程类。

TThread也是封装了那写win32sdk里的函数.
[解决办法]
这个线程类也不是很难管理,一般都没有问题的,不是还有对应的TThreadList吗
实在不喜欢自己写线程类模版,以后都不需要用他,印象中曾经有位高手发布过一个,你可以找找
[解决办法]
把你的邮箱留下好了,我帮你实现一个。

热点排行