C#で遅延実行を書いたがActionをジェネリックで渡す方法がわからない
こんにちは。
C#で、遅延実行をしようとしています。
ある程度は動いています。
下記のソースを定義しました。
public static void WaitExecute(int milliseconds, Action f)
{
// 指定秒後に処理を実行
DispatcherTimer timer = new DispatcherTimer
{
Interval = TimeSpan.FromMilliseconds(milliseconds)
};
timer.Start();
timer.Tick += (s, args) =>
{
// タイマーの停止
timer.Stop();
f();
};
}
private void comboBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
// 指定秒後に処理を実行
WaitExecute(100, () =>
{
comboBox1.Text = "デフォルト値";
});
}
このようにして、少しだけ動作を遅らせて動かす仕組みを作ってみました。
comboBoxは単なる例です。
Comboboxで何を選択しても、すぐにデフォルト値に戻るような動きをします。
(実際には特定の項目だけデフォルト値に戻る、
というような実装をしています)
このときに、この、WaitExecute
に引数として、引き数なしのAction
を渡すだけではなく
引き数が任意個数の、たとえば、Action<string>
や Action<string, string>
や
Action<int>
などを渡したいのです。
WaitExecute
を修正してAction
を引き渡したときに
ジェネリックとして記載するのだと思うのですが、
そのやり方がわかりません。
検索ワードの工夫も難しくテクニックなどがみつかりませんでした。
ご存知でしたら教えてください。
このようなテクニックがわかるWebサイトなどを
示していただくのも助かります。
よろしくお願いします。