精华内容
下载资源
问答
  • windows桌面计时器小工具,方便计时(比如会议计时,到点提醒;评审时间计时,到点提醒),可以设置计时时间等等
  • vb windows编程计时器

    2010-04-28 12:45:34
    自己 用vb windows 编程的一个 计时器,很实用。
  • qt5.3 windows实现计时器

    2017-11-02 15:59:59
    qt 实现炫酷计时器,可以自由缩放大小,支持4K显示,正计时和倒计时,还有圆环进度条。
  • 一款以家庭教师为主题的Windows7小工具倒计时器,以天为单位
  • 熟知Windows7多功能计时器应用
  • 基于 Windows计时器针对在 Windows 窗体应用程序中使用而进行了优化。基于服务器的计时器是传统的计时器为了在服务器环境上运行而优化后的更新版本。线程计时器是一种简单的、轻量级计时器,它使用回调方法而不是...

    基于 Windows 的计时器针对在 Windows 窗体应用程序中使用而进行了优化。基于服务器的计时器是传统的计时器为了在服务器环境上运行而优化后的更新版本。线程计时器是一种简单的、轻量级计时器,它使用回调方法而不是使用事件,并由线程池线程提供支持。

    在 Win32 体系结构中有两种类型的线程:UI 线程和辅助线程。UI 线程绝大多数时间处于空闲状态,等待消息循环中的消息到来。一旦接收到消息,它们就进行处理并等待下一个消息到来。另外,辅助线程用来执行后台处理而且不使用消息循环。Windows 计时器和基于服务器的计时器在运行时都使用 Interval 属性。线程计时器的时间间隔在 Timer 构造函数中设置。计时器的设计目的各不相同,它们的线程处理明确地指出了这一点:

    • Windows 计时器是为单线程环境设计的,其中,UI 线程用于执行处理。Windows 计时器的精度限定为 55 毫秒。这些传统计时器要求用户代码有一个可用的 UI 消息泵,而且总是在同一个线程中操作,或者将调用封送到另一个线程。对于 COM 组件来说,这样会降低性能。

    • 基于服务器的计时器是为在多线程环境下与辅助线程一起使用而设计的。由于它们使用不同的体系结构,因此基于服务器的计时器可能比 Windows 计时器精确得多。服务器计时器可以在线程之间移动来处理引发的事件。

    • 对消息不在线程上发送的方案中,线程计时器是非常有用的。例如,基于 Windows 的计时器依赖于操作系统计时器的支持,如果不在线程上发送消息,与计时器相关的事件将不会发生。在这种情况下,线程计时器就非常有用。

    Windows 计时器位于 System.Windows.Forms 命名空间中,服务器计时器 System.Timers 命名空间中,线程计时器位于 System.Threading 命名空间中。

    展开全文
  • windows7用的,非常漂亮的透明计时器
  • Windows各种计时器

    千次阅读 2013-10-24 00:48:41
    (一):OnTimer类   2.在消息映射MessageMaps中添加消息Message:WM_...3.程序代码中将自动添加函数OnTimer(UINT nIDEvent),在该函数内编写代码实现计时器功能。 函数代码一般写在switch...case中,nIDEve

    (一):OnTimer类

    1.打开对应对话框的类向导ClassWizard。

    2.在消息映射MessageMaps中添加消息Message:WM_TIMER。

    3.程序代码中将自动添加函数OnTimer(UINT nIDEvent),在该函数内编写代码实现计时器功能。

    函数代码一般写在switch...case中,nIDEvent表示计时器ID号,从而区分不同计时器的实现内容。

    若不使用switch...case结构,则表示实现ID为1的计时器功能。

    整个函数代码如下:

    void CCountDown::OnTimer(UINT nIDEvent)
    {
     switch (nIDEvent)
     {
     case 1:
      { 
    
       //代码实现
    
       break;
      }
     default:
      break;
     }
    
     CDialog::OnTimer(nIDEvent);
    }

    4.在要开始计时器的地方调用:

    SetTimer(1,1000,NULL);//第一个参数表示计时器的ID;

                            第二个参数表示间隔时间(ms);

                            第三个表示调用的函数,NULL表示默认调用OnTimer函数。

    5.在要结束计时器的地方调用:

    KillTimer(1);)        //参数表示计时器的ID


    (2):ontimer实例:

    (1)   创建一个基于对话框的应用程序。

    (2)   在对话框界面添加一个文本框和两个按钮。

    (3)   文本框添加一个变量m_nTime。

    (4)   双击“设置定时器”按钮,添加如下代码:

    void CTimeDlg::OnButton1()
    {
           // TODO: Add your control notification handler code here
           UpdateData(false);
           //取消定时器
           KillTimer(1);
           //设置定时器
           SetTimer(1,1000,NULL);
    
    }
    
    (5)   双击“取消定时器”按钮,添加如下代码:
    
    void CTimeDlg::OnButton1()
    {
           // TODO: Add your control notification handler code here
           UpdateData(false);
           //取消定时器
           KillTimer(1);
    }
    
    (6)   添加一个静态变量n,申明如下:
    
    static n=0;
    
    (7)   添加WM_TIMER事件,方法为:右键单击对话框空白部分—>Event,在弹出的对话框左边选择WM_TIMER双击,右边就出现WM_TIMER,再双击添加如下代码:
    
    void CTimeDlg::OnTimer(UINT nIDEvent)
    
    {
           // TODO: Add your message handler code here and/or call default
    
           if(nIDEvent==1){
                  n++;
                  m_nTime=n;
                  UpdateData(false);
           }
           CDialog::OnTimer(nIDEvent);
    }
     

    运行结果:

    点击“设置定时器”文本框数字每隔1秒自动增1,点击“取消定时器”,数字停止增加,再点击“设置定时器”,数字接着继续增加。如果每次设置都从0重新开始,只要在“设置定时器”按钮把n值重新赋值0即可。

    展开全文
  • 说明:此文大部分内容摘自MSDN,本人只是做了一点整理。...基于 Windows计时器为在 Windows 窗体应用程序中使用而进行了优化,基于服务器的计时器是传统的计时器为了在服务器环境上运行而优化后的更
    说明:此文大部分内容摘自MSDN,本人只是做了一点整理。如果有什么异议,一切以MSDN为准。
    
    一、引言
        在 Visual Studio .NET 中有两种计时器控件——基于服务器的计时器和标准的基于 Windows 的计时器。
    基于 Windows 的计时器为在 Windows 窗体应用程序中使用而进行了优化,基于服务器的计时器是传统的计时
    器为了在服务器环境上运行而优化后的更新版本。
     
    二、两种不同的计时器有什么区别呢?
        在 Win32 体系结构中有两种类型的线程:UI 线程和辅助线程。UI 线程绝大多数时间处于空闲状态,等待
    消息循环中的消息到来。一旦接收到消息,它们就进行处理并等待下一个消息到来。另外,辅助线程用来执
    行后台处理而且不使用消息循环。虽然 Windows 计时器和基于服务器的计时器运行时都使用 Interval 属性,
    但它们的设计用途是不同的(这一点可由它们对线程的处理方式来证明): 
    
        Windows 计时器是为单线程环境设计的,其中,UI 线程用于执行处理。 Windows 计时器的精度限定为 55
     毫秒。这些传统计时器要求用户代码有一个可用的 UI 消息泵,而且总是在同一个线程中操作,或者将调用封
    送到另一个线程。对于 COM 组件来说,这样会降低性能。   
    
        基于服务器的计时器是为在多线程环境下与辅助线程一起使用而设计的。由于它们使用不同的体系结构,因
    此基于服务器的计时器可能比 Windows 计时器精确得多。服务器计时器可以在线程之间移动来处理引发的事件。 
    
        基于服务器的 Timer 是为在多线程环境中用于辅助线程而设计的。服务器计时器可以在线程间移动来处理引
    发的 Elapsed 事件,这样就可以比 Windows 计时器更精确地按时引发事件。有关基于服务器的计时器的更多信
    息,请参阅基于服务器的计时器介绍。
    
    三、使用示例
    这里给出了两种计时器的示例,以便大家参考使用。
    1、服务器计时器使用示例
    
    //using System.Timers; 
    public class Timer1
     {
     
         public static void Main()
         {
             System.Timers.Timer aTimer = new System.Timers.Timer();
             //设置事件处理句柄,此处为OnTimedEvent方法:
             aTimer.Elapsed+=new ElapsedEventHandler(OnTimedEvent);
             aTimer.Interval=5000;//设置间隔时间为5秒
             aTimer.AutoReset=true;
             /*
              *注意   当 AutoReset 设置为 false 时,Timer 只在第一个 Interval 
              *过后引发一次 Elapsed 事件。若要保持以 Interval 时间间隔引发 
              *Elapsed 事件,请将 AutoReset 设置为 true。
              */
             aTimer.Enabled=true;//计时开始,此处也可以用aTimer.Start();
     
             Console.WriteLine("Press /'q/' to quit the sample.");
             while(Console.Read()!='q');
             aTimer.Enabled=false;//计时结束,此处也可以用aTimer.Stop();
         }
     
         //这里就是 Elapsed 事件发生时所调用的方法:
         public static void OnTimedEvent(object source, ElapsedEventArgs e)
         {
             Console.WriteLine("Hello World!");
         }
     }
    
    2、Windows 计时器使用示例
    
        Windows 计时器是为单线程环境设计的,其中,UI 线程用于执行处理。它要求用户代码有一个可用的 UI 
    消息泵,而且总是在同一个线程中操作,或者将调用封送到另一个线程。
    
    
    //using System.Windows.Forms; 
    public class Class1 
    {
        static System.Windows.Forms.Timer myTimer = new System.Windows.Forms.Timer();
        static int alarmCounter = 1;
        static bool exitFlag = false;
     
        // 在时间到达的时候就运行下面的方法:
        private static void TimerEventProcessor(Object myObject,
                                                EventArgs myEventArgs)
        {
           myTimer.Stop();
     
           // 显示一个对话框,询问是否继续运行计时器
           if(MessageBox.Show("Continue running?", "Count is: " + alarmCounter, 
              MessageBoxButtons.YesNo) == DialogResult.Yes) 
           {
              // 重新启动计时器
              alarmCounter +=1;
              myTimer.Enabled = true;
           }
           else 
           {
              //关闭计时器
              exitFlag = true;
           }
        }
     
        public static int Main() 
        {
           /* 设置事件处理句柄 ,这里的Tick与服务器计时其中的Elapsed相对应*/
           myTimer.Tick += new EventHandler(TimerEventProcessor);
     
           myTimer.Interval = 5000;// 初始化计时器
           myTimer.Start();
     
           // 开始运行计时器
           while(exitFlag == false)  
           {
              //延迟一段时间
              Application.DoEvents();
           }
           return 0;
        }
     }
    
    展开全文
  • 计时器消息的处理  (1)当不使用回调函数时  当不使用回调函数时程序会收到 WM_TIMER 消息, 这时只要像处理普通消息一样处理 WM_TIMER 消息就行了, 如果有多个计时器, 可以从 wParam 参数中根据计时器的ID...

    计时器消息的处理


           (1)当不使用回调函数时
                当不使用回调函数时程序会收到 WM_TIMER 消息, 这时只要像处理普通消息一样处理 WM_TIMER 消息就行了, 如果有多个计时器, 可以从 wParam 参数中根据计时器的ID作不同的处理, 例如:
         case WM_TIMER:
                    switch(wParam)
                    {
                        case 1:
                            [处理ID为1的计时器]
                            break;
                        case 2:
                            [处理ID为2的计时器]
                            break ;
                        ...
                    }
                    return 0 ;
    
         
            (2)使用回调函数的计时器
                当计时器创建时指定好回调函数时, 回调函数可以像下面的写法进行:
         VOID CALLBACK TimerProc( HWND hwnd, UINT message, UINT iTimerID, DWORD dwTime )
         {
                [处理 WM_TIMER 消息]
         }         
    

                当不同的计时器使用同一个回调函数时, 可以根据回调函数的 iTimerID 参数来区分不同的计时器

    例如:     

      switch(iTimerID)
               {
                case 1:         //处理ID为1的定时器
                     [...]
                     break;
                case 2:         //处理ID为2的定时器
                     [...]
                     break;
                ...
               }


                    

    销毁计时器


            在开始部分也已经说了, Windows的计时器属于系统资源, 在使用完毕后应及时销毁。销毁计时器的函数是 KillTimer, 他的函数原型如下:
            BOOL KillTimer(
                HWND hWnd,            //窗口句柄
                UINT_PTR uIDEvent    //计时器ID
            );
    

            要销毁一个计时器, 必须知道该计时器的ID, 所以保留计时器的ID也是十分重要的, 你可以在任何时候销毁一个已经创建的计时器, 包括在处理计时器消息时。 最好在程序退出之前销毁完所有的已创建的计时器, 一个不错的办法是在处理 WM_DESTROY 消息时对于那些没有销毁的全部进行销毁。

            需要注意的是, 当成功销毁一个计时器后, 该计时器所产生的 WM_TIMER 消息并不会从消息队列中移除, 如果消息队列中还有没有处理的 WM_TIMER 消息, 那么即使销毁了该计时器, 应用程序还是会有可能处理到没有处理完的 WM_TIMER 消息。
    展开全文
  • 是一个跨linux 和windows计时器,C++,windows使用VS2010,Linux下的Makefile已经包含有,本计时器是粗略的计时器,很简单,很容易看懂,可以继续改良。
  • 计时器的使用主要分为创建、处理、销毁三个部分。  ①. 创建: 创建一个计时器并设定其定计时器的任务周期, 例如每5秒向程序发送... 销毁: Windows计时器属于系统资源, 在使用完毕后应及时销毁。   计时器的创建
  • 是一个跨linux 和windows计时器,C++,windows使用VS2010,Linux下的Makefile已经包含有,本计时器是粗略的计时器,很简单,很容易看懂,可以继续改良。
  • Windows系统高精度计时器 原理:联合使用QueryPerformanceFrequency和QueryPerformanceCounter获取高精度时间; 平台:vc++6/vc++2008
  • Windows计时器函数

    2019-09-19 15:54:00
    文章目录1、标准c/c++函数(windows/Linux)2、windows系统提供的API接口 1、标准c/c++函数(windows/Linux) 1、clock()函数,毫秒精度 #include <time.h> clock_t time_begin= clock(); Sleep(1000); ...
  • 若要解决此问题,使用服务器计时器 System.Timers 命名空间中而不是 Windows 窗体计时器 System.Windows.Forms 命名空间中 using System;using System.Timers;public class Timer1{ private static System.Timers...
  • 使用计时器的三种方法: 如果程序在整个运行过程中需要一一个 计时器,在WinMain函数中或处理WM_ CREATE消息时,调用SetTimer函数;在离开WinMain函数时或是处理WM DESTROY消息时,调用KillTimer 函数。基于调用...
  • Windows平台的计时器

    千次阅读 2012-03-26 17:35:41
    Windows平台下,常用的计时器有两种: 1, TimeGetTime计时器,它可以提供毫秒级ms的计时。但这个精度对很多应用场合而言还是不够精确的。 例子: #include #include #pragma comment(lib, "winmm")//告诉...
  • 秒表计时器开始计时代码For whatever reason, Windows did not include alarms, timers, and stopwatches until Windows 8 rolled around. Windows 10 improves on those features, and this basic function now ...
  • 我们可以通过调用SetTimer函数建立一个计时器。... 在Windows98中,计时器具有55毫秒的分辨率。在Windows NT中,计时器具有10毫秒的分辨率。Windows不能以高于这一分辨率的速度接受WM_TIMER消息。
  • 根据微软官网上的2010考研倒计时器稍微修改了下函数参数,仅供学习使用,原作者信息保留,仍在xml文件中,只是对倒计时部分的JS文件与显示文件CSS文件进行修改
  • 该程序计时上存在误差,1小时大约慢1分钟左右,由于该程序的功能仅是记录学习时间,因此不对程序进行优化。该程序随机选择背景画面,仅有暂停一项功能,根据每天的学习时间之作折线图的功能尚未提上议题。仅供娱乐~
  • Windows程序设计之计时器

    千次阅读 2008-10-10 20:11:00
    计时器是一种输入设备,它周期性地通知应用程序:应用程序根据设定的时间间隔告诉Windows,然后Windows向应用程序周期性地发送WM_TIMER消息计时器消息:WM_TIMER2.操作计时器2.1设置计时器:SetTimerThe SetTimer ...
  • Windows编程之计时器

    千次阅读 2005-03-01 14:07:00
    计时器的使用:三种方法:一、SetTimer (hwnd, 1, uiMsecInterval, NULL) ;第三个参数是以毫秒为单位的时间间隔。通过调用KillTimer(hwnd,1);WM_TIMER消息。第二个参数是与SetTimer一样的计时器ID号。当收到一个WM_...
  • 获得CPU时钟晶振的计时器。该软件包用VC6.0开发,以cdecl的方式提供C编译器生成的dll。源码分为4部分:WinTimerDll,封装了RDTSC汇编实现过程的DLL源码,提供了3个API函数;WinTimerTest,加载WinTimerDll生成的DLL...
  • 我运行哪个文件? 您需要运行“ Launcher.py”来创建会话锁定检查,以避免多个实例发生冲突。 会话锁定文件完全不影响throwOffWD文件。... 当看门狗计时器未通过检查时,将使用此方法,它将记录发生故障的时间和日期
  • windows程序设计——计时器

    千次阅读 2017-06-14 17:32:03
    可能不是很直观,但计时器确实算的上一个输入设备。当设置了一个定时器是,系统设置一个计时数,由windows系统接收到硬件的tick信号将计时数减去一定值,当减少到0时,系统在程序的消息队列中加入一条WM_TIMER消息。...
  • Qt Windows下多媒体计时器使用举例

    千次阅读 2011-04-15 23:17:00
    Qt 下使用Windows api: timeSetEvent 和 timeKillEvent 操作多媒体计时器的例子
  • CWnd::SetTimer CWnd::KillTimer// 两种定时器机制 1.给指定窗口发WM_TIMER...3,回调函数Windows计时器基于的硬件计时器一般54.9ms走一下,如编写精确计时的应用程序,则用多媒体定时器,可以把间隔设置为1ms或更小
  • windows程序设计之计时器(一)

    千次阅读 2013-11-19 21:10:29
    一、Windows计时器的作用: 1、显示时间,制作时钟。 2、多任务运行,当程序需要执行一个大任务时,可以把它分成一个个的小任务。每当收到一个WM_TIMER消息时,就处理一个小任务。 3、保持更新进度报告,显示某项...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 41,610
精华内容 16,644
关键字:

windows7计时器