0
下面的代碼適用於我正在做的事情,但是我很好奇如果我使用Task.Delay()不是最佳實踐。我需要延遲以確保GameHandler有足夠的時間來處理我的按鍵。但是,我想知道是否有更好的方法來做這樣的事情。正確使用Task.Delay延遲按鍵
async public Task<bool> CloseMenusAsync(CancellationToken token)
{
while (GameHandler.Menu.IsOpen && !token.IsCancellationRequested)
{
if (GameHandler.Menu.IsOpen && GameHandler.Menu.DialogText.Question == "Open")
{
GameHandler.SendKeyPress(KeyCode.DownArrow);
await Task.Delay(150);
GameHandler.SendKeyPress(KeyCode.EnterKey);
await Task.Delay(150);
}
if (GameHandler.Menu.IsOpen && GameHandler.Menu.Selection == "Trade")
{
GameHandler.SendKeyPress(KeyCode.EscapeKey);
await Task.Delay(150);
GameHandler.SendKeyPress(KeyCode.EnterKey);
await Task.Delay(150);
}
GameHandler.SendKeyPress(KeyCode.EscapeKey);
await Task.Delay(150);
}
return !GameHandler.Menu.IsOpen;
}