我第一次使用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;
一次嘗試
爲此,它工作正常,在第一時間,禁用按鈕,睡眠對於異步操作,然後啓用它回來。
但第二次點擊按鈕時,它被禁用,但從未再次啓用。
第二次嘗試
這一次,我想表明的消息X100倍和它的作品第一次藏漢,但是當我再次調用過程我得到以下錯誤TOminCommunicationEndpoint.Send: Queue is full
可有人誰已經使用這個庫解釋給我,爲什麼我得到這個錯誤?如果它與第一次嘗試的問題有關?
當您在調試器下運行此代碼時,會引發異常,它會告訴您此問題。你應該養成使用提供的工具的習慣。調試器很有用。 –