本篇文章主要介绍了" delphi 多线程之SystemTMonitor (续一)",主要涉及到方面的内容,对于Delphijrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播感兴趣的同学可以参考一下:
unit Unit1;interfaceusesWinapi.Windows, Winapi.Messages, System.SysUtils, System...
unit Unit1;
interfaceuses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
TForm1 = class(TForm)
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
Button1: TButton;
Button2: TButton;
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private{ Private declarations }public{ Public declarations }end;
var
Form1: TForm1;
implementation{$R *.dfm}procedure Log(Msg: string);
begin
TThread.Synchronize(nil, procedurebegin
Form1.Memo1.Lines.Add(Msg);
end);
end;
procedure TForm1.Button1Click(Sender: TObject);
beginif System.MonitorTryEnter(Self) then//如果为 Truebegin
Color := clRed;
System.MonitorExit(Self); //也必须退出,否则 System.MonitorPulse(Self); 失效。end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
System.MonitorPulse(Self);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
TThread.CreateAnonymousThread(procedurebeginwhile True dobeginif Form1.CheckBox2.Checked then
Exit;
System.MonitorEnter(Form1); //必须
Log('Thread1 Enter');
System.MonitorWait(Form1, INFINITE);
Log('Thread1 WaitFor');
System.MonitorExit(Form1); //必须
Log('Thread1 Exit');
Log(DateTimeToStr(Now));
TThread.Sleep(100);
end;
Log('Thread Exit');
end).Start;
end;
end.
注意事项:
if System.MonitorTryEnter(Self) then //如果为 True
begin
Color := clRed;
System.MonitorExit(Self); //也必须退出(释放),否则 System.MonitorPulse(Self); 失效。
end;
System.MonitorTryEnter 与 System.MonitorEnter 的区别在于是否会 block 当前调用 System.MonitorEnter 或 System.MonitorTryEnter 的线程。
System.MonitorEnter 会 block 调用线程
System.MonitorTryEnter 不会 block 调用线程。
此外
System.MonitorEnter(Form1);
System.MonitorWait(Form1, INFINITE); //执行后, Button1的onclick事件中,System.MonitorTryEnter(Self) 总会返回 True
以上就介绍了 delphi 多线程之SystemTMonitor (续一),包括了方面的内容,希望对Delphijrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播有兴趣的朋友有所帮助。
本文网址链接:http://www.codes51.com/article/detail_4442857.html