Thread.sleep的用法(搭配异步处理)

Thread.sleep的用法

当我想延迟一段时间的时候呢,会不自觉的想到使用Thread.sleep函数,但我经常会忘记它会阻断主线程这回事,通俗来说就是用该函数阻止主线程200ms,那么后边的都得给我延迟200ms。而一些新手,比如我,经常忘了这回事。比如我们使用下边的方法

void main()
{
RunThread();
Console.writeLine("B");
}
void RunThread()
{
Thread.Sleep(1000);
Console.writeLine("A");
}

那么输出的顺序是:
“A”
"B”
如果我们想先输出B,再输出A,我们可以使用async 和await来异步解决这一问题。具体使用方法是将Thread.sleep放进await内的task方法体内。

void main()
{
RunThread();
Console.writeLine("B");
}
async void RunThread()
{
await Task.Run(() =>
{
Thread.Sleep(1000);
Console.writeLine("A");
});
}

它的运行顺序是当程序进入到RunThread内部时,发现使用了异步语句,那么就会立即返回,然后进行输出B的操作。

你可能感兴趣的:(C#)