如何在c#内核3.1中延迟某个任务



注意:我不擅长编码。

我正试图让应用程序中的某个任务在一定时间后运行——例如,我希望Console.WriteLine("Hello delay");Console.WriteLine("Hello World!");运行180秒后运行,我该如何做到这一点?

我还没有尝试过其他任何东西。

using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
// I want (Console.WriteLine("Hello delay");) to run 
// 180 seconds after (Console.WriteLine("Hello World!");) is run
Console.WriteLine("Hello delay");
}
}
}

您可以休眠当前线程。

using System;
using System.Threading;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
Thread.Sleep(180 * 1000);
Console.WriteLine("Hello delay");
}
}
}

使用Task.Run((运行任务并等待其完成。

static void Main(string[] args)
{
Console.WriteLine("Hello World!");
var numSecondsDelay = 180;
var t = Task.Run(async delegate
{
await Task.Delay(numSecondsDelay*1000);
return numSecondsDelay;
});
t.Wait();
Console.WriteLine("Hello delay");
}

如下:

static async void Main(string[] args)
{
Console.WriteLine("Hello World!");

await Task.Run(() =>
{
Thread.Sleep(1000);
Console.WriteLine("Hello delay");
});

Console.WriteLine("Hello delay");
}
using System;
using System.Threading; // add this
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
Thread.Sleep(180000); // add this
Console.WriteLine("Hello delay");
}
}
}

您可以使用以下代码将处理延迟180秒。

System.Threading.Thread.Sleep(180 * 1000);

最新更新