처음으로 OTL을 사용하고 있으며 Async/Await 추상화를 사용하려고했습니다.OTL에서이 오류가 발생하는 이유는 무엇입니까?
이제 어떤 일이 발생하는지보기 위해 작은 프로그램을 만들었습니다. 그것은 단지 버튼 일 뿐이며이 절차를 호출합니다.
procedure TForm2.Button1Click(Sender: TObject);
var i : integer;
begin
Button1.enabled := false; //Only for second try
for i := 0 to 100 do
begin
Async(
procedure begin
sleep(5000);
end).
Await(
procedure begin
//First Try - Button1.Enabled := true;
//Second Try - showmessage('finished')
end
);
Button1.enabled := true; //Only for the second try.
end;
end;
첫째, 그것은 잘 처음 작동이 들어
을 시도 asyncs의 버튼, 수면을 해제 한 다음 다시 할 수 있습니다.
버튼을 두 번째 클릭해도 사용할 수 없지만 다시 활성화되지는 않습니다.
둘째
내가 메시지 × 100 시간을 보여주고 싶었이 시간을 시도하고는 처음 aswell을 작동하지만 다시 프로 시저를 호출 할 때 다음과 같은 오류를 얻을 TOminCommunicationEndpoint.Send: Queue is full
수있는 사람이 누가 이 라이브러리를 사용해 보았습니다. 왜이 오류가 발생합니까? 그리고 그것이 첫 번째 시도와 관련된 문제라면?
디버거에서이 코드를 실행하면 문제를 알려주는 예외가 발생합니다. 제공된 도구를 사용하는 습관을 갖춰야합니다. 디버거가 유용합니다. –