作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我了解到,我之前在我的 C# 控制台应用程序中使用“Thread.Sleep”的解决方案(由于等待网页做我总是无法使用普通的 Selenium/Chromedriver WebDriverWaits 实现的事情)不是一个很好的解决方案,因为它会在整个 sleep 期间卡住整个线程。
因为我不应该这样做:系统.Threading.Thread.Sleep(250);那我该怎么办?我希望它是一个单独的声明,而不是东西的包装器,因为这样很快就会变得非常困惑。我有很多地方使用过 Thread.Sleep。但显然我可以使用整个类来完成它 - 如有必要,我只想能够像普通方法一样调用它。
到目前为止,这是我发现的最好的工作:
class Tools
{
private static async Task _Sleep(int ms)
{
await Task.Delay(ms);
}
public static void Sleep(int ms)
{
var task = _Sleep(ms);
task.Wait();
}
}
我应该用其他东西代替那个吗?
最佳答案
很少有真正充分的理由使用任何形式的 sleep 。在 1000 例中有 999 例是错误的编码。您应该等待所需的确切时间,而不是等待任意时间。例如你应该使用:
await MyFunction();
或回调/事件处理函数,例如
WebBrowser wb = new WebBrowser();
wb.DocumentCompleted += Wb_DocumentCompleted;
...
private void Wb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
//do your thing...
}
关于c# - 用不那么强烈的东西替换 thread.sleep,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45315964/
我想在网站上模拟负载,(网站是用 php 编写的)。例如,我想在同一页面(例如 index.php)上同时模拟 10 000 个请求,搜索后我找到了“jmeter”(但我仍然没有测试它)。其他,您可以
我是一名优秀的程序员,十分优秀!