如何在 Dart 中模拟长时间进程(睡眠)?
How to simulate long time process (sleep) in Dart?
我想stop/sleep执行以模拟长时间的过程,不幸的是我找不到相关信息。我已阅读以下主题 (How can I "sleep" a Dart program),但这不是我要找的内容。
例如 dart:io
包中的 sleep()
函数不适用,因为该包在浏览器中不可用。
例如:
import 'dart:html';
main() {
// I want to "sleep"/hang executing during several seconds
// and only then run the rest of function's body
querySelect('#loading').remove();
...other functions and actions...
}
我知道有Timer
class 会在一段时间后进行回调,但它仍然不会阻止整个程序的执行。
无法停止执行。您可以使用计时器或 Future.delayed,也可以只使用仅在经过一定时间后才结束的无限循环。
如果你想要停止世界休眠功能,你完全可以自己做。我会提到我不建议你这样做,停止世界是一个非常糟糕的主意,但如果你真的想要它:
void sleep(Duration duration) {
var ms = duration.inMilliseconds;
var start = new DateTime.now().millisecondsSinceEpoch;
while (true) {
var current = new DateTime.now().millisecondsSinceEpoch;
if (current - start >= ms) {
break;
}
}
}
void main() {
print("Begin.");
sleep(new Duration(seconds: 2));
print("End.");
}
我想stop/sleep执行以模拟长时间的过程,不幸的是我找不到相关信息。我已阅读以下主题 (How can I "sleep" a Dart program),但这不是我要找的内容。
例如 dart:io
包中的 sleep()
函数不适用,因为该包在浏览器中不可用。
例如:
import 'dart:html';
main() {
// I want to "sleep"/hang executing during several seconds
// and only then run the rest of function's body
querySelect('#loading').remove();
...other functions and actions...
}
我知道有Timer
class 会在一段时间后进行回调,但它仍然不会阻止整个程序的执行。
无法停止执行。您可以使用计时器或 Future.delayed,也可以只使用仅在经过一定时间后才结束的无限循环。
如果你想要停止世界休眠功能,你完全可以自己做。我会提到我不建议你这样做,停止世界是一个非常糟糕的主意,但如果你真的想要它:
void sleep(Duration duration) {
var ms = duration.inMilliseconds;
var start = new DateTime.now().millisecondsSinceEpoch;
while (true) {
var current = new DateTime.now().millisecondsSinceEpoch;
if (current - start >= ms) {
break;
}
}
}
void main() {
print("Begin.");
sleep(new Duration(seconds: 2));
print("End.");
}