C构建器中的线程

C构建器中的线程,第1张

概述我是c的新手,并且不熟悉线程我希望有人可以发布一个例子或指出我正确的方向. 我有一个窗体,它在c builder中加载formShow()函数.它做我想要我的程序做的事情,但只有在那之后它才会显示实际的表格. 为此我需要线程化程序的表单和后台运行.任何人都可以帮助我吗? 直到OnShow事件退出之后才延迟逻辑可能会更简单,而根本不使用线程.例如: const UINT WM_DO_WORK = W 我是c的新手,并且不熟悉线程我希望有人可以发布一个例子或指出我正确的方向.

我有一个窗体,它在c builder中加载formShow()函数.它做我想要我的程序做的事情,但只有在那之后它才会显示实际的表格.

为此我需要线程化程序的表单和后台运行.任何人都可以帮助我吗?

解决方法 直到OnShow事件退出之后才延迟逻辑可能会更简单,而根本不使用线程.例如:
const UINT WM_DO_WORK = WM_USER + 1;voID __fastcall TForm1::FormShow(TObject *Sender){    PostMessage(Handle,WM_DO_WORK,0);}voID __fastcall TForm1::WndProc(TMessage &Message){    if (Message.Msg == WM_DO_WORK)    {        // do work here ...    }    else        TForm::WndProc(Message);}

如果你真的想要编写代码,你可以这样做:

class TMyThread : public TThread{protected:    virtual voID __fastcall Execute();public:    __fastcall TMyThread();};__fastcall TMyThread::TMyThread()    : TThread(true){    FreeOnTerminate = true;    // setup other thread parameters as needed...}voID __fastcall TMyThread::Execute(){    // do work here ...    // if you need to access the UI controls,// use the TThread::Synchornize() method for that}voID __fastcall TForm1::FormShow(TObject *Sender){    TMyThread *thrd = new TMyThread();    thrd->OnTerminate = &ThreadTerminated;    thrd->Resume();}voID __fastcall TForm1::ThreadTerminated(TObject *Sender){    // thread is finished with its work ...}
总结

以上是内存溢出为你收集整理的C构建器中的线程全部内容,希望文章能够帮你解决C构建器中的线程所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1256967.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存