thread Thread  c++builder XE8 / RAD 10 Settle

TThread.Synchronize(nil, procedure
      begin
        Memo1.Lines.Add('Server has NOT resume download feature');
      end);

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); }

上面的写法并不是创建新线程。也不是匿名线程的用法,达不到线程的效果。这个是通知主线程执行代码,也就是这个代码必须在子线程里(匿名线程也可以)里的用于更新VCL界面的,所以才用到,普通的VCL没有任何线程的代码写这个毫无意义。

是不是以前的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();
//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();
ShowMessage("aaa");
} );
}

DWORD WINAPI  PollThread(LPVOID pParam)/线程函数

hThread = CreateThread ( NULL, 0, PollThread, this, 0, NULL );

c++builder XE8 线程 Thread的更多相关文章

  1. Lua 学习笔记(九)协同程序(线程thread)

    协同程序与线程thread差不多,也就是一条执行序列,拥有自己独立的栈.局部变量和命令指针,同时又与其他协同程序共享全局变量和其他大部分东西.从概念上讲线程与协同程序的主要区别在于,一个具有多个线程的 ...

  2. java 线程 Thread 使用介绍,包含wait(),notifyAll() 等函数使用介绍

    (原创,转载请说明出处!谢谢--http://www.cnblogs.com/linguanh/) 此文目的为了帮助大家较全面.通俗地了解线程 Thread 相关基础知识! 目录: --线程的创建: ...

  3. Android 线程Thread的2种实现方法

    在讲解之前有以下三点要说明: 1.在Android中有两种实现线程Thread的方法: ①扩展java.long.Thread类: ②实现Runnable()接口: 2.Thread类是线程类,它有两 ...

  4. 线程(thread)

    线程(thread): 现代操作系统引入进程概念,为了并发(行)任务 1.进程之间的这种切换代价很高 2.通信方式的代价也很大基本概念: 1.线程是比进程更小的资源单位,它是进程中的一个执行路线(分支 ...

  5. Java线程Thread的状态解析以及状态转换分析 多线程中篇(七)

    线程与操作系统中线程(进程)的概念同根同源,尽管千差万别. 操作系统中有状态以及状态的切换,Java线程中照样也有. State 在Thread类中有内部类 枚举State,用于抽象描述Java线程的 ...

  6. Asp.Net任务Task和线程Thread

    Task是.NET4.0加入的,跟线程池ThreadPool的功能类似,用Task开启新任务时,会从线程池中调用线程,而Thread每次实例化都会创建一个新的线程.任务(Task)是架构在线程之上的, ...

  7. 线程 Thread Runnable 守护线程 join MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  8. Android Framework中的线程Thread及它的threadLoop方法

    当初跟踪Camera的代码中的时候一直追到了HAL层,而在Framework中的代码看见了许很多多的Thread.它们普遍的特点就是有一个threadLoop方法.依照字面的意思应该是这个线程能够循环 ...

  9. Android 线程 thread 两种实现方法

    原文链接: http://blog.csdn.net/boyupeng/article/details/6208072 这篇文章中有三点需要提前说明一下, 一: 在android中有两种实现线程thr ...

随机推荐

  1. git和其他版本控制系统的区别

    所有除了Git以外的版本控制系统都使用增量存储方式来保存不同版本,而Git则在每一个commit时,保存一个整个文件的content copy,除非那个文件没有做过改动.Git和其他版本系统的主要区别 ...

  2. Android Studio 配置使用百度api (附带简单样例)

    还是和同学开发的那个课程作业项目的app, 要使用到百度地图的api 但是,官方文档貌似只有Eclipse的例子,对Android Studio似乎没有说明.  难道,是因为后者是 "Doo ...

  3. (转载)C语言预处理

    C程序的源代码中可包括各种编译指令,这些指令称为预处理命令.虽然它们实际上不是C语言的一部分,但却扩展了C程序设计的环境.本节将介绍如何应用预处理程序和注释简化程序开发过程,并提高程序的可读性.ANS ...

  4. EIG集团简单介绍

    有朋友会问为什么要介绍EIG集团,他们是干什么的?与域名.主机.IDC行业资讯等有啥关系?EIG集团很牛逼么?带着这些疑问,简单的给大家做个介绍,希望能帮助大家了解这个IDC行业里面的“魔鬼”! EI ...

  5. 通过 XtraBackup 实现不停机不锁表搭建主从同步

    简介 Xtrabackup是由 Percona 开发的一个开源软件,可实现对 InnoDB 的数据备份,支持在线热备份(备份时不影响数据读写).备份时,Xtrabackup 会将 Master 的 b ...

  6. 三 最简单的 AndEngine 程序框架

    package com.example.AndEngineExample; import org.anddev.andengine.engine.Engine;import org.anddev.an ...

  7. Android设计模式之策略模式

    今天介绍下策略模式,直接先上UML图 策略模式的概念 The Strategy Pattern defines a family of algorithms,encapsulates each one ...

  8. 【Android】Handler使用入门

    本讲内容:Handler使用入门 当用户点击一个按钮时如果执行的是一个常耗时操作的话,处理不好会导致系统假死,用户体验很差,而Android则更进一步,如果任意一个Acitivity没有响应5秒钟以上 ...

  9. npoi z

    http://blog.csdn.net/fireghost57/article/details/25623143 http://www.cnblogs.com/jiagoushi/archive/2 ...

  10. 用Delphi实现文件关联

      文件关联为我们带来很多的方便.Delphi自带有注册表对象TRegistry,可以通过它取得或改变注册表相关键值的内容. Function GetAssociatedExec(FileExt: S ...