Я создаю приложение в Visual C ++ 2008 Express Edition, приложении для форм Windows, поэтому использую Managed C ++ / CLI.
Я новичок в этом, и мне нужно следующее:
У меня есть функция, которая в основном перезагружает устройство с интерфейсом HID. Я хочу показать индикатор выполнения (вид фиктивного индикатора выполнения в течение 30 секунд), который прогрессирует каждую секунду до 30 отсчетов. После того, как это закончится, я хочу, чтобы код после всего этого выполнялся.
Я попытался сделать это с таймером System.Windows.Forms, и он просто выполняет код сразу после события timer-> Enabled = true.
Вот код, если он помогает:
private:System::Void hidReboot(System::Void) {
System::UInt16 res = 0;
//bring up form to display progress bar
res = SendRebootCmd();
if (res == true)
{
timer1->Enabled = true; //in this tick event..i have the progress bar stuff
//some other code here
}
}
Таким образом, в основном, когда в комментарии говорится // какой-то другой код, я хочу делать это только тогда, когда индикатор выполнения выполнен и таймер насчитал до 30 тиков (с шагом 1 секунда - 30 секунд).
Я попытался поместить цикл while, но я не могу использовать его, так как он зависает в потоке пользовательского интерфейса, таким образом не вызывая событие tick таймера.
Любые предложения, чтения или советы будут с благодарностью. Спасибо!