zoukankan      html  css  js  c++  java
  • TThread.CreateAnonymousThread() 匿名线程对象的应用

    unit Unit1;

    interface

    uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls,System.SyncObjs;

    type
    TForm1 = class(TForm)
    btn1: TButton;
    procedure btn1Click(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    private
    { Private declarations }
    finish: Boolean;
    breaking: Boolean;
    public
    procedure Myfun;
    end;

    var
    Form1: TForm1;
    readwritelock: TCriticalSection;

    implementation

    {$R *.dfm}

    procedure TForm1.btn1Click(Sender: TObject);
    begin
    finish := False;
    breaking := False;
    TThread.CreateAnonymousThread(Myfun).Start;
    end;

    procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    begin
    readwritelock.Enter;
    try
    breaking := True;
    finally
    readwritelock.Leave;
    end;
    while not finish do
    Sleep(10);
    end;

    procedure TForm1.Myfun;
    var
    i : Integer;
    b: Boolean;
    begin
    for i := 0 to 5000000 do
    begin
    readwritelock.Enter;
    try
    b := breaking;
    finally
    readwritelock.Leave;
    end;
    if b then Break;

    Self.Canvas.Lock;
    Canvas.TextOut(10,10,IntToStr(i));
    Self.Canvas.Unlock;
    end;
    finish := True;
    end;

    initialization
    readwritelock := TCriticalSection.Create;
    end.

    用加法的方式去爱人, 用减法的方式去怨恨, 用乘法的方式去感恩。 人生,最重要的不是得失, 而是拥有一颗善待自己的平常心!
  • 相关阅读:
    一代人的青春--芳华
    用切面对监控日志的实现2
    一个在java后台实现的对图片进行加网纹或水印的工具类
    家乡的河
    家乡的鬼节—十来一儿
    八里沟印象
    双城记
    记忆中的那一树梨花
    用切面对监控日志的实现
    关于poi导出excel三种方式HSSFWorkbook,SXSSFWorkbook,csv的总结
  • 原文地址:https://www.cnblogs.com/sunday-night/p/6203173.html
Copyright © 2011-2022 走看看