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

CB的线程有关问题

2013-07-25 
CB的线程问题因为在线程中要用到VCL,所以用CB自带的线程工具建立线程,1、怎么样传参数进去?2、怎么判断线程

CB的线程问题
因为在线程中要用到VCL,所以用CB自带的线程工具建立线程,

1、怎么样传参数进去?
2、怎么判断线程结束?

谢谢



[解决办法]
一、我是这样子传参的:

__fastcall ThreadIniQfb::ThreadIniQfb(bool CreateSuspended,参数1,参数2...)
        : TThread(CreateSuspended)

然后在public声明

__fastcall ThreadIniQfb(bool CreateSuspended,参数1,参数2...)

调用 

ThreadIniQfb *at = new ThreadIniQfb(true,参数1,参数2...)
    at->FreeOnTerminate=true;
    at->Resume();

线程结束,好像是要用等待的哪个函数吧,我没用过,


[解决办法]
FreeOnTerminate=true; 放到线程构造函数内。
运行后自动释放线程了。
[解决办法]
class TMyThread: public TThread
{......};

TMyThread* myThread = new TMyThread(true);// true 为创建线程立即挂起,反之立即执行
myThread->FreeOnTerminate = true; // 当线程完毕后自动销毁

// 传惨,假设TMyThread里定义了这些成员
myThread->m_parm1 = "字符串参数";
myThread->m_pram2 = 100;

THandle  hThread = myThread->Handle; // 线程句柄
int idThread = myThread->ThreadID; // 线程ID

// 线程执行完毕后、自动销毁前的回调函数,这里是个TNotifyEvent
// typedef void __fastcall (__closure *TNotifyEvent)(System::TObject* Sender);
myThread->OnTerminate = MyCBFun; // 在回调函数里通知外部线程结束了

热点排行