c++builder XE6 线程 tthread
thread TThread
class TSleepFunc : public TCppInterfacedObject<TProc>
{
public:
TSleepFunc(TForm28* Form) : FForm(Form)
{
} virtual void __fastcall Invoke(void)
{
for (FForm->ClientDataSet1->First(); !FForm->ClientDataSet1->Eof; FForm->ClientDataSet1->Next())
{
FForm->ClientDataSet1->Edit();
FForm->ClientDataSet1->FieldByName("Stat")->Value = FForm->ClientDataSet1->RecNo;
FForm->ClientDataSet1->Post();
}
TThread::Synchronize(TThread::CurrentThread, UpdateCaption);
} void __fastcall UpdateCaption(void)
{
FForm->Caption = "OK";
} private:
TForm28* FForm;
}; // ---------------------------------------------------------------------------
void __fastcall TForm28::Button1Click(TObject *Sender)
{
ClientDataSet1->Close();
ADOQuery1->Close();
ADOQuery1->SQL->Text = "select * from tt";
ADOQuery1->Open();
ClientDataSet1->Open(); TThread::CreateAnonymousThread(new TSleepFunc(this))->Start(); }
http://codeverge.com/embarcadero.cppbuilder.cpp/trttimethod-do-not-work/1055179
delphi
procedure TForm1.ConnectionTest;
var
sc :TSQLConnection;
begin
sc := TSQLConnection.Create(nil);
sc.DriverName := 'DevartOracle';
sc.Params.Values['DATABASE'] := eDatabase.Text;
sc.Params.Values['User_Name'] := eUserName.Text;
sc.Params.Values['Password'] := ePassword.Text;
sc.Connected := True;
Sleep();
sc.Connected := False;
sc.Free;
end; procedure TForm1.btnMainThreadClick(Sender: TObject);
begin
ConnectionTest; //Does not leak handles with Oracle 12.1.0 client.
end; procedure TForm1.btnThreadedClick(Sender: TObject);
begin
TThread.CreateAnonymousThread(ConnectionTest).Start; //Leaks 9 mutex handles with Oracle 12.1.0 client.
end;
Queue依然会阻塞。
TThread.Queue(TThread.CurrentThread, procedure
begin
FOnProcessPlay(newPos);
end);
tthread.Synchronize(TThread.CurrentThread,updateUI);
tthread.CreateAnonymousThread(updateUI).Start; TThread.Queue(TThread.CurrentThread, startData2Background);
Synchronize代码是阻塞执行的。query.Open()放在这个函数执行是达不到线程效果的。
c++builder XE6 线程 tthread的更多相关文章
- c++builder XE8 线程 Thread
thread Thread c++builder XE8 / RAD 10 Settle delphi TThread.CreateAnonymousThread(MyMethod).Start; ...
- DevExpress VCL 2014.1.2 for C++BUILDER XE6
DevExpress VCL 2014.1.2 for C++BUILDER XE6 1)下载 DevExpress VCL 2014.1.2下载链接:http://pan.baidu.com ...
- c++Builder XE6 MD5 加密算法 BASE64 URL 编码
xe6,xe7 BASE64XE6 MD5 加密算法Delphifunction MD5(const texto: string): string; var idmd5: TIdHashMessage ...
- c++builder XE6 Remote Debuger 远程调试
1.远程目标机器 安装D:\Program Files (x86)\Borland\Remote Debugger\20,没有光盘从已安装的xe6电脑上Bin目录下拷贝文件 bccide.dll bo ...
- C++ Builder多线程编程技术经验谈(转)
源:C++ Builder多线程编程技术经验谈 线程之可行性 在很多情况下,可能需要为程序创建线程.这里给出其中一些可能性: (1)如果创建的是一个多文档接口(Multiple Document ...
- 2年后的Delphi XE6
1.有幸下载到Delphi XE6,下载地址如下: http://altd.embarcadero.com/download/radstudio/xe6/delphicbuilder_xe6_win. ...
- 扩展 delphi 线程 使之传递参数.(给匿名线程增加参数)
新delphi的线程TThread有了CreateAnonymousThread方法,如果再为它加一个可传递的参数不就更好了吗?代码如下: TAnonymousThreadX<T> = c ...
- 扩展 delphi 线程 使之传递参数.
新delphi的线程TThread有了CreateAnonymousThread方法,如果再为它加一个可传递的参数不就更好了吗?代码如下: TAnonymousThreadX<T> = c ...
- String、String Buffer、String Builder
对于String.String Buffer.String Builder:我一直都只知道String是字符串常量,后两者是字符串变量: String和String Buffer是线程安全的,Stri ...
随机推荐
- windows 版nginx 的一些基础知识
nginx的Windows版本使用原生Win32 API(非Cygwin模拟层).当前nginx/Windows只使用select作为通知方法,所以不要期待它有很高的性能和扩展性.鉴于这点和一些已知问 ...
- CGI之C语言篇
为什么要进行CGI编程? 在HTML中,当客户填写了表单,并按下了发送(submit)按钮后,表单的内容被发送到了服务器端,一般的,这时就需要有一个服务器端脚本来对表单的内容进行一些处理,或者是把它们 ...
- FastAdmin 提示框 toastr 改变文字
如下图这个消息提示框为 toastr. FastAdmin 用的就是 toast 前端组件. 那如何改变这个文字呢? Karson:只要后台使用$this->success("自定义成 ...
- 创建ASM实例及ASM数据库
--======================== -- 创建ASM实例及ASM数据库 --======================== 一.ASM相关概念 1.什么是ASM(Auto Stor ...
- 基于DRL和TORCS的自动驾驶仿真系统——之环境配置
基于DRL和TORCS的自动驾驶仿真系统 --之环境配置 玩TORCS和DRL差不多有一整年了,开始的摸爬滚打都是不断碰壁过来的,近来在参与CMU的DRL10703课程学习和翻译志愿者工作,也将自己以 ...
- nginx 官方docker镜像使用教程
最近在看nignx,在本地虚拟机使用docker nginx镜像搭建了nginx+php环境 整理的教程如下: 拉取nginx镜像docker pull nginx 创建一个容器,并挂载本地目录doc ...
- Redis的多线程
Redis是单线程内部机制,那么怎么实现并发?在单机上部署多个Redis实例.
- hdu 1506 Largest Rectangle in a Histogram——笛卡尔树
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1506 关于笛卡尔树的构建:https://www.cnblogs.com/reverymoon/p/952 ...
- Windows网络编程经验小结
转自:CSDN网友的强贴,其ID:gdy119 (夜风微凉) 1. 如果在已经处于 ESTABLISHED状态下的socket(一般由端口号和标志符区分)调用closesocket(一般不会立即关闭而 ...
- linux vim tutor
================================================================================ 欢 迎 阅 ...