Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net net中的同步计时器? 我在Visual C++ 2008 Express版中构建了一个应用程序,一个Windows窗体应用程序,因此使用托管C++/CLI._.net_Winforms_Visual C++_C++ Cli - Fatal编程技术网

.net net中的同步计时器? 我在Visual C++ 2008 Express版中构建了一个应用程序,一个Windows窗体应用程序,因此使用托管C++/CLI.

.net net中的同步计时器? 我在Visual C++ 2008 Express版中构建了一个应用程序,一个Windows窗体应用程序,因此使用托管C++/CLI.,.net,winforms,visual-c++,c++-cli,.net,Winforms,Visual C++,C++ Cli,我是新手,需要以下方面的指导: 我有一个基本上可以重新启动HID接口设备的功能。我想展示一个进度条(一种大约30秒的虚拟进度条),它每秒进行30次计数。在这一切结束后,我希望代码在这一切之后执行 我尝试使用System.Windows.Forms计时器执行此操作,它只是在timer->Enabled=true事件之后执行代码 下面是一些代码,如果有帮助的话: private:System::Void hidReboot(System::Void) { System::UInt16

我是新手,需要以下方面的指导:

我有一个基本上可以重新启动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循环,但我不能使用它,因为它挂起了UI线程,因此不会引发计时器的滴答事件


如有任何建议、阅读材料或提示,将不胜感激。谢谢

Windows.Forms.Timer
适用于此。我怀疑你的建议不合适


在您的情况下,将间隔设置为1000(单位为毫秒,而不是秒)。这将导致滴答声事件每秒发生一次。

您不应该对该函数进行任何类型的等待。只需启动计时器,然后退出该功能


在计时器中添加函数的剩余部分,并检查是否已完成倒计时。

我有点不清楚-您希望计时器计时30次,推进进度条,然后在完成后运行重新启动。。。。。。。。或者你想显示自己更新的工具栏,然后在30秒后重新启动?如果操作的持续时间未知,并且无法获得合理的进度值,我会使用某种形式的微调器或循环进度动画,而不是普通的进度条。asawyer-我希望重新启动,而不是在我希望进度条显示进度后立即运行。完成后,我希望它执行下一行代码。重新启动大约需要20秒,成功重新启动后只返回一个字节…因此我做了一个假设,并告诉用户重新启动大约需要30秒。CodeInChaos-我将对此进行研究。谢谢这可能是一个很好的方法…我担心的是,我将不得不添加各种其他计时器…可能10个左右(有擦除命令、写入命令等)。这仍然是最好的方式吗?