Отложенные задачи в приложении C++ для Windows (спящий режим)

В настоящее время я пишу небольшое приложение для Windows 10 в VS 2015 на С++. Я пытаюсь следовать этому руководству: https://msdn.microsoft.com/en-us/windows/uwp/get-started/create-a-basic-windows-10-app-in-cpp.

Теперь у меня есть небольшой цикл, который выглядит так:

while (getline(file, line))
    {
    i++;
    //std::this_thread::sleep_for(std::chrono::milliseconds(300));
    //Sleep(300);
    MyApp::MainPage::outBox->Text = ref new PLatform::String(to_wstring(i).c_str());}

Я хочу, чтобы цикл ждал несколько сотен мс, чтобы постоянно изменять содержимое текстового поля. Методы, которые я пробовал, заключались в том, что сам вывод задерживался, но подсчет продолжался, так что ничего не менялось до истечения накопленного времени ожидания. Таким образом, вывод идет от 0 до 50 через несколько секунд вместо 0-> 1-2-> 3... каждые 300 мс. Я подумал, что может быть так: https://msdn.microsoft.com/de-de/library/hh194873(v=vs.110).aspx?cs-save-lang=1&cs-lang=cpp#фрагменткода-1

Это решение, но я не могу заставить его работать на C++. Класс System::Threading не имеет члена Task или Tasks...

Заранее спасибо!


person user2160180    schedule 09.03.2016    source источник
comment
Это цикл в вашем основном потоке?   -  person Mohamad Elghawi    schedule 09.03.2016
comment
Я не уверен, что такое основной поток в контексте uwa, но он находится в нажатом событии поля ввода.   -  person user2160180    schedule 09.03.2016
comment
Похоже, это может иметь значение: stackoverflow. ком/вопросы/13806809/   -  person Petter Hesselberg    schedule 09.03.2016
comment
Я не эксперт в разработке UWP, но кажется, что вы блокируете свой поток main/ui, засыпая в цикле while, что предотвращает обновление пользовательского интерфейса, поэтому вы не видите постепенного обновления. Вам нужен какой-то таймер, который срабатывает через определенное время и вызывает некоторый обратный вызов. Убедитесь, что обратный вызов выполняется в потоке пользовательского интерфейса, если вы хотите обновить пользовательский интерфейс. Взгляните на это.   -  person Mohamad Elghawi    schedule 09.03.2016
comment
@PetterHesselberg хорошо, это актуально, но без ответа, я думаю? У меня тоже не работает метод Concurrency::task.   -  person user2160180    schedule 09.03.2016