내가 이해 한대로 TThread의 Synchronize를 호출하면 동기화 된 코드가 주 스레드에서 실행 된 것처럼 실행됩니다. , 보조 스레드에서TThread의 동작 동기화
procedure TForm3.Button1Click(Sender: TObject);
var
A, B, C : String;
begin
A := 'test1';
B := 'test2';
C := 'test3';
Button1.Enabled := false;
end;
나는 다음과 같은 코드가 있습니다 :의 내 메인 스레드에서, 나는 하나 개의 버튼을한다고 가정 해 봅시다
procedure TestThread.ChangeButton1;
begin
Form3.Button1.Enabled := true;
end;
(코드 자체에주의를 지불하지 마십시오 - 그냥 예입니다 그것은 하지를 아무 뜻입니다.)
내가 마우스 오른쪽 후 Button1을를 클릭 한 말, 동안 Button1Click이라 실행 중입니다. TestThread는 을 호출합니다. 동기화 (ChangeButton1); ChangeButton1이 주 스레드에 의해 실행될 때를 알 수 있습니까? 그렇다면 Button1Click이 모두 실행 된 것입니다. 또는 절차 내에서 네 가지 작업 중 하나 일 수 있습니까?죄송 합니다만 바보 같은 질문입니다. 그 질문에 대한 답을 찾을 수 없었습니다. 동기화 절차가 어떻게 작동하는지 더 잘 이해할 수 있습니다.
감사합니다.