0

ボタンをクリックすると、10 秒間待機し、SendKeys を介して特定のキーストロークを実行するアプリケーションを作成しています。問題は、ユーザーがウィンドウ内でマウス ポインターを移動できるようにする必要があることです (例: Web ブラウザーでテキスト ボックスを選択する)。だから、私が試してみると

System.Threading.Thread.Sleep(10000);

GUI全体がフリーズし、ユーザーが簡単に何もできないため、私にとってはうまくいきません。それで、TIMERが来ます。ユーザーが10秒間待機できるように設定し(タイマー1と呼びましょう)、数秒ごとにキーストロークの組み合わせでタイマー2を有効にし、タイマー1(自体)を無効にする必要があります。GUIをフリーズすることなくすべて。Visual Studio でタイマー間隔を設定すると、完全に無視されているように見えますが、すぐにはアクティブになりませんが、+-50 ミリ秒後です。

助言がありますか?ありがとう。

4

1 に答える 1

0

buttonClick イベントでタスクの継続を使用できます

Task.Delay(10000)
    .ContinueWith(_ => YourMethod(), 
               TaskScheduler.FromCurrentSynchronizationContext());

また

private async void button1_Click(object sender, EventArgs e)
{
     await Task.Delay(10000);
     YourMethod();
}
于 2013-03-01T21:43:59.817 に答える