【问题标题】:Proper use of Task.Delay to delay key presses正确使用 Task.Delay 来延迟按键
【发布时间】:2012-07-20 03:43:10
【问题描述】:

下面的代码适用于我正在做的事情,但是我很好奇我对 Task.Delay() 的使用是否不是最佳实践。我需要延迟以确保 GameHandler 有足够的时间来处理我的按键操作。但是,我想知道是否有更好的方法来做这样的事情。

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;
            }

【问题讨论】:

    标签: c# .net asynchronous delay task


    【解决方案1】:

    既然你是发送方,那很好。

    另一种选择是使用Rx,它的学习曲线更高。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-09
      • 2012-07-18
      • 2021-02-14
      • 1970-01-01
      • 1970-01-01
      • 2012-05-31
      • 2020-11-03
      • 1970-01-01
      相关资源
      最近更新 更多