博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c++builder XE8 线程 Thread
阅读量:6947 次
发布时间:2019-06-27

本文共 2582 字,大约阅读时间需要 8 分钟。

 thread Thread  c++builder XE8 / RAD 10 Settle

 

delphi

TThread.CreateAnonymousThread(MyMethod).Start;

 

 TThread.Synchronize(TThread.CurrentThread, GetImage);//Synchronize阻塞执行同步

匿名线程中调用单击事件

    TThread.CreateAnonymousThread(
      procedure()
      begin
        Button1.Click();
      end).Start;
 

get CreateAnonymousThread handler

 Thread := TThread.CreateAnonymousThread(My_Own_Procedure);

Thread.OnTerminate := MyThreadTerminated;

Thread.Start;

https://forums.embarcadero.com/thread.jspa?threadID=171738

 

TThread.Synchronize (TThread.CurrentThread,  procedure ()  begin  end);  end);

匿名线程,函数线程

void __fastcall TForm3::GetImage(){;}void __fastcall TForm3::Button1Click(TObject *Sender){TThread::Synchronize(TThread::CurrentThread, GetImage);}

上面的写法并不是创建新线程。也不是匿名线程的用法,达不到线程的效果。

是不是以前的TThread.CreateAnonymousThread

最早是这样http://blog.csdn.net/luozhuang/article/details/29827763

c++匿名线程,XE8也没有官方的实例,RAD 10 Settle才有了。

TThread::CreateAnonymousThread([this]    {        if (!BluetoothLE1->DiscoveredDevices->Items[ListBox1->ItemIndex]->DiscoverServices())        {            TThread::Synchronize(NULL, [this]            {                ListBox2->Items->Add("- Discover services not allow");                ListBox1->Enabled = true;            });        }    })->Start();

 

TThread::CreateAnonymousThread(AnonymousLambda(&this->SampleDownload))->Start();

 

简化版匿名线程

TThread::CreateAnonymousThread([this]    {        TThread::Synchronize(NULL, [this]        {            Caption = Now();             Sleep(5000);             Caption = "end";        });    })->Start();

匿名线程调用函数,这个就比较好用了。只能在新版编译器bcc32c使用,bcc32不支持语法。

void __fastcall TForm3::GetImage(){    this->Caption = Now();    Sleep(5000);     //Query->ExecSQL();执行sql或存储过程     //Query->Open(); Caption = "end";
} void __fastcall TForm3::Button1Click(TObject *Sender) {    TThread::CreateAnonymousThread([this] {GetImage();})->Start(); }

 

TThread::CreateAnonymousThread([this](){        TThread::Synchronize(TThread::CurrentThread, [this]()        {            Button1->Click();        });    })->Start();

 

 

看原始定义参数是_di_TProc,还有下面这种写法

TTask::Run( _di_TProc(new TCppTask(5000, MoveUpAnim, Button1)) );

http://community.embarcadero.com/index.php/blogs/entry/spinning-icons-to-visually-queue-load-states-using-true-type-font-pack-font-awesome

http://blog.appmethod.com/spinning-icons-to-visually-queue-load-states-using-true-type-font-pack-font-awesome

 

CurThread: TThreadID;

CurThread := GetCurrentThreadID;

 

界面 无延迟无卡顿,用clang编译器

void __fastcall TForm1::Button1Click(TObject *Sender){    TTask::Run([]()        {            Sleep(2000);            ShowMessage("aaa");        }    );}

 

你可能感兴趣的文章
Windows上用gcc编译SQLite3
查看>>
bash位置参数的简介
查看>>
VirtualBox导入其他虚拟机后网络问题
查看>>
Weblogic修改密码口令验证策略
查看>>
js 正则通过class查找Tag内的内容。
查看>>
ZeroClipboard实现多个浏览器兼容的复制文本到剪贴板的功能
查看>>
动态SQL、绑定变量、静态SQL的性能对比
查看>>
还没学到的技术总不想先去偷窥,时机成熟才敢去解开神秘的面纱。
查看>>
因特尔:视网膜屏将于2013年到来
查看>>
VC删除注册表键值项
查看>>
Hadoop安装配置使用
查看>>
1.01 与 37.8
查看>>
微积分35--二重积分的计算
查看>>
java对象与字符串之间的序列化和反序列化
查看>>
人工智障 2 : 你看到的AI与智能无关
查看>>
Let's Encrypt 使用教程,免费的SSL证书,让你的网站拥抱 HTTPS
查看>>
.net 面试题系列四(附答案)
查看>>
sql server的并发性
查看>>
windows php启动浏览器
查看>>
CPP_类模板与模板类
查看>>