当Task.Start()
被调用时,如何更新参数currentTime
发送到WriteToConsole
?调用Task.Start()时更新参数值?
在下面的示例中,当我声明task0
时,currentTime
的值设置为1/1/2000。当执行task0.Start();
时,currentTime
的值已更改为DateTime.Now
。但Console.WriteLine
显示'1/1/2000'。
我需要做些什么来更新currentTime
,以便使用当前值调用task0.Start()?
static void WriteToConsole(DateTime n)
{
Console.WriteLine(n.ToString());
}
static void Main(string[] args)
{
DateTime currentTime = new DateTime(2000, 01, 01);
Task task0 = new Task(n => WriteToConsole((DateTime)n), currentTime);
for (; ;)
{
currentTime = DateTime.Now;
if (true)
{
task0.Start();
}
if (task0.Status.Equals(TaskStatus.Running))
{
// Do Something
}
}
}
需要更多的上下文。你是否想创建task0的多个实例,每个实例都有自己的currentTime?在这种情况下,每次启动时都会创建一个新的Task实例。 – 2014-10-01 21:59:38