2015-04-15 3 views
1

Я хочу остановить/выполнить сон, чтобы имитировать длительный процесс, к сожалению, я не могу найти информацию об этом. Я прочитал следующую тему (How can I "sleep" a Dart program), но это не то, что я ищу.Как имитировать длительный процесс (сон) в Дарте?

Например, sleep() От dart:io Пакеты не применимы, потому что этот пакет не доступен в браузере.

Например:

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 класс, чтобы сделать обратные вызовы через какое-то время, но все же это не мешает выполнение программы в целом.

ответ

3

Невозможно остановить выполнение. Вы можете использовать Timer или Future.delayed или просто использовать бесконечный цикл, который заканчивается только через некоторое время.

+1

Благодаря Gunter, мне нравится ответы, как это) Строгие, идиоматические и простые –

1

Если вы хотите остановить функцию сна сна, вы можете сделать это целиком самостоятельно. Я упомяну, что я не рекомендую вам сделать это, это очень плохая идея, чтобы остановить мир, но если вы действительно хотите:

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."); 
} 
+0

Очень интересный подход!) Спасибо за предложение! –

Смежные вопросы