需求为 : 创建一个异步的任务,每隔一秒打印一下当前的时间。
以下有两种实现方案,大家帮忙看下这两种方案各自有什么优缺点。
或者给一下你自己的实现方案吧。
实现1
static void Main(string[] args)
{
createJob1();
Console.ReadLine();
}
/// <summary>
/// createjob 本身需要是异步的,调用后立即返回
/// </summary>
static void crateJob1()
{
new Task(()=>{
while (true)
{
Thread.Sleep(1000 * 1);
Debug.WriteLine(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"));
}
}).Start();
}
实现2
static void Main(string[] args)
{
createJob2();
Console.ReadLine();
}
/// <summary>
/// createjob 本身需要是异步的,调用后立即返回
/// </summary>
static Task createJob2()
{
return Task.Delay(1000 * 1).ContinueWith(t =>
{
Debug.WriteLine(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"));
createJob2();
});
}
第一种方式需要占用一个线程,第二种不用。根据实际情况吧。