我定义个全局临界区变量:
var
Form1: TForm1;
TaskQueueCS: TRTLCriticalSection; //临界区
//在窗体创建事件中写,InitializeCriticalSection(TaskQueueCs);
//在窗体的Close事件中写,DeleteCriticalSection(TaskQueueCs);
//我的疑问如下:
//按钮1点击 进入临界区(但是没有退出临界区)
procedure TForm1.Button1Click(Sender: TObject);
begin
EnterCriticalSection(TaskQueueCs);
Edit1.Text:='111'; //把edit1.text变为 111
end;//按钮2也进入临界区 edit2.text变为222
为什么这里也可以进入临界区?????
临界区只能在多线程中才有效果么?????
procedure TForm1.Button2Click(Sender: TObject);
begin
EnterCriticalSection(TaskQueueCs);
Edit1.Text:='222';
end;
var
Form1: TForm1;
TaskQueueCS: TRTLCriticalSection; //临界区
//在窗体创建事件中写,InitializeCriticalSection(TaskQueueCs);
//在窗体的Close事件中写,DeleteCriticalSection(TaskQueueCs);
//我的疑问如下:
//按钮1点击 进入临界区(但是没有退出临界区)
procedure TForm1.Button1Click(Sender: TObject);
begin
EnterCriticalSection(TaskQueueCs);
Edit1.Text:='111'; //把edit1.text变为 111
end;//按钮2也进入临界区 edit2.text变为222
为什么这里也可以进入临界区?????
临界区只能在多线程中才有效果么?????
procedure TForm1.Button2Click(Sender: TObject);
begin
EnterCriticalSection(TaskQueueCs);
Edit1.Text:='222';
end;
Edit1.Text:='111'; //把edit1.text变为 111
LeaveCriticalSection(TaskQueueCs);
为什么button2中也可以进入临界区,并修改eidt1.text中的内容呀??
那里比较详细点,