c ,sleep可以在多线程里用吗

Thread.Sleep在多线程中的使用真是一门学问。
我自己也经历过很多坑,所以说一下我的经历。

记得有一次,在一个小项目中,为了模拟用户输入延迟,我直接在重要的地方Thread.Sleep几秒钟。
导致服务器响应速度极慢,用户体验极差。
这就是我所说的。
虽然Thread.Sleep会引入延迟,但它会使线程处于阻塞状态并导致资源消耗。
如果过度使用,实际上会导致性能问题,例如死锁或线程饥饿。

我有一个朋友的公司。
他们的系统在多线程中滥用Thread.Sleep,有时会导致简单的操作等待很长时间才响应。
后来我不得不重写代码,将同步Thread.Sleep替换为异步Task.Delay。
结果,它跑得更快了。

但是,您不能使用Thread.Sleep。
例如,如果您需要等待任务中满足某个条件,Thread.Sleep 就是一个好帮手。
不过,记得控制时间,不要让线程休眠半天。

还有一点,如果你是做高并发应用,Thread.Sleep要谨慎使用。
因为它会影响系统的整体性能。
如果不确定的话,可以先测试一下,看看对你的系统影响是否大。

无论如何,如果使用得当,Thread.Sleep 是一个工具,但如果使用不当,就会成为一个陷阱。
您必须根据具体情况决定是否要使用它以及如何使用它。
不要遇到需要拖延的区域就跳入陷阱。
具体问题具体分析。

求教C# 多线程、异步、同步之间的联系与区别

同步任务:做饭,专注时间长达3 0分钟,心无旁骛。
异步任务:煮咖啡并在5 分钟内自动加满,期间可以做其他事情。
称一下体重。