更改延迟计时器? (C#)

Changing the delay timer? (c#)

简短的问题。 这是我的代码。

var t = Task.Run(async delegate
{
    await Task.Delay(10);
    return 42;
});
t.Wait();

这就是我通常会使用的内容。但稍后在我的代码中我需要延迟来改变。我已经尝试过类似的方法,但我觉得不对:

t.Wait(page*11);

(每当我点击一个按钮时,变量 "page" 就会改变。几乎每次都是一个新值)

您可以声明一个变量并将其值传递给您在 Task.Run 中传递的委托,如下所示:

// define here the delayParam
int delayParam = 10;

var t = Task.Run(() => 
{
    await Task.Delay(delayParam);
    return 42;
});
t.Wait();

Task.Run 的 return 类型是一个 Task<T> 或者只是一个 Task 如果没有它是 returned。您可以通过调用 Wait 方法阻止等待任务的结果,就像您已经做的那样。您不能将参数传递给结果...