0

以下のコードは私がやっていることに対して機能しますが、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;
            }
4

1 に答える 1

0

あなたは送る側だから大丈夫。

もう 1 つのオプションは、より高い学習曲線を持つRxを使用することです。

于 2012-07-20T10:55:40.153 に答える