Kanzi编程基础 - 定时器

Kanzi虽然发生了比较多的版本更迭,api也发生了很多变化,
但定时器的头文件一直都在一个地方:
#include "user/include/user/ui/message/kzu_message_dispatcher.h"

先看看头文件里的api说明。

这个头文件里定义了定时器timeout回调函数格式:

/** Message callback prototype. */
typedef kzsError (*KzuMessageHandlerFunction)(struct kanzi::MessageArguments* message, void* userData);

注册和反注册定时器的api说明如下:

/** Registers a timer handler.
 * \param messageDispatcher The message dispatcher to use.
 * \param interval timeout in milliseconds in case of a one-shot timer, and the interval in case of a repeating timer.
 * \param mode KZU_TIMER_MESSAGE_MODE_ONCE, KZU_TIMER_MESSAGE_MODE_REPEAT or KZU_TIMER_MESSAGE_MODE_REPEAT_BATCH. KZU_TIMER_MESSAGE_MODE_REPEAT_BATCH is
 *             recommended for a repeating timer because it calls handlerFunction only once when the interval has been exceeded several times over.
 * \param handlerFunction The function to call when the timer expires.
 * \param userData User data pointer passed to handlerFunction.
 */
KANZI_API kzsError kzuMessageDispatcherAddTimerHandler(KzuMessageDispatcher* messageDispatcher, kzUint interval, enum KzuTimerMessageMode mode,
                                                       KzuMessageHandlerFunction handlerFunction, void* userData);
/** Unregisters a timer handler. */
KANZI_API kzsError kzuMessageDispatcherRemoveTimerHandler(KzuMessageDispatcher* messageDispatcher, KzuMessageHandlerFunction handlerFunction, const void* userData);

其中参数KzuMessageDispatcher是消息分发器,interval是定时器的间隔时间,KzuTimerMessageMode是定时器的模式(重复或者仅仅一次),KzuMessageHandlerFunction为上面提到的timeout的回调函数。

再来看看具体的使用。

………

…………

待补充。

时间: 2024-11-03 19:57:01

Kanzi编程基础 - 定时器的相关文章

Linux 网络编程基础(4) -- Ping 的C代码实现

1.背景 在进行网络编程的时候,通常使用的协议有TCP协议,UDP协议.这些协议在简历套接字之初需要制定套接字的类型,比如TCP应当设置为 SOCK_STREAM, UDP对应的套接字应当设置为SOCK_DGRAM.但是这些套接字并非能够提供网络所需的全部功能,我们还需要其他的套接字,比如原始套接字OCK_RAW.原始 套接字可以提供SOCK_STREAM和SOCK_DGRAM所不及的能力.比如: (1)有了原始套接字,进程可以读取ICMPV4.ICMPV6.IGMP等的分组.正如ping所使用

(转)Windows驱动编程基础教程

版权声明 本书是免费电子书. 作者保留一切权利.但在保证本书完整性(包括版权声明.前言.正文内容.后记.以及作者的信息),并不增删.改变其中任何文字内容的前提下,欢迎任何读者 以任何形式(包括各种格式的文档)复制和转载本书.同时不限制利用此书赢利的行为(如收费注册下载,或者出售光盘或打印版本).不满足此前提的任何转载. 复制.赢利行为则是侵犯版权的行为. 发现本书的错漏之处,请联系作者.请不要修改本文中任何内容,不经过作者的同意发布修改后的版本. 作者信息 作者网名楚狂人.真名谭文.在上海从事W

1.5编程基础之循环控制_29:数字反转

/* 1.5编程基础之循环控制 29:数字反转 总时间限制: 1000ms 内存限制: 65536kB 描述 给定一个整数,请将该数各个位上数字反转得到一个新数. 新数也应满足整数的常见形式,即除非给定的原数为零, 否则反转后得到的新数的最高位数字不应为零(参见样例2). 输入 输入共 1 行,一个整数N. -1,000,000,000 ≤ N≤ 1,000,000,000. 输出 输出共 1 行,一个整数,表示反转后的新数. 样例输入 样例 #1: 123 样例 #2: -380 样例输出 样

网络编程基础

网络编程基础 1.套接字概念 Linux环境下使用套接字进行进程之间的通信.用过套接字的接口,其他进程的位置对于应用程序来讲是透明的.相互通信双方端点都有一个套接字,双方如果要进行通信,通过套接字建立桥梁,双方就可以通信了. 类似文件一样,套接字也有一个套接字描述符,应用程序可以像操作文件一样操作套接字.在进行网络通信的过程中,用户感觉就是在操作文件一样,这是Linux将外部设备抽象为一个文件的好处. 2.字节序 不同主机的体系结构不同,所采用的数据存储方式不同.网络中,进程之间的通信是跨主机的

多线程编程基础知识

多线程编程基础知识 http://www.cnblogs.com/cy163/archive/2006/11/02/547428.html 当前流行的Windows操作系统能同时运行几个程序(独立运行的程序又称之为进程),对于同一个程序,它又可以分成若干个独立的执行流,我们称之为线程,线程提供了多任务处理的能力.用进程和线程的观点来研究软件是当今普遍采用的方法,进程和线程的概念的出现,对提高软件的并行性有着重要的意义.现在的大型应用软件无一不是多线程多任务处理,单线程的软件是不可想象的.因此掌握

shell 脚本编程基础

一.编程基础 程序:指令+数据 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell程序:提供了编程能力,解释执行 1.程序的执行方式 计算机:运行二进制指令: 编程语言: 低级:汇编 高级: 编译:高级语言–>编译器–>目标代码 java,C# 解释:高级语言–>解释器–>机器代码 shell, perl, python 2.编程基本概念 编程逻辑处理方式: 顺序执行 循环执行 选择执行 shell编程:过程式.解释执行 编程语言

DAY9:bash脚本编程基础(1)

内容主要为: 一.编程基础 二.shell脚本及其基本格式 三.变量 四.运算 五.条件测试 六.流程控制 一.编程基础 1)程序 程序:指令+数据 程序编程风格: 过程式:以指令为中心,数据服务于指令(C,bash) 对象式:以数据为中心,指令服务于数据 (java,C++,Python) shell程序:提供了编程能力,解释执行 2)程序的执行方式 计算机:运行二进制指令: 编程语言: 低级:汇编 高级: 编译:高级语言-->编译器-->目标代码 java,C# 解释:高级语言-->

iOS开发网络篇—网络编程基础

iOS开发网络篇—网络编程基础 一.为什么要学习网络编程 1.简单说明 在移动互联网时代,移动应用的特征有: (1)几乎所有应用都需要用到网络,比如QQ.微博.网易新闻.优酷.百度地图 (2)只有通过网络跟外界进行数据交互.数据更新,应用才能保持新鲜.活力 (3)如果没有了网络,也就缺少了数据变化,无论外观多么华丽,终将变成一潭死水 移动网络应用 = 良好的UI + 良好的用户体验 + 实时更新的数据 新闻:网易新闻.新浪新闻.搜狐新闻.腾讯新闻 视频:优酷.百度视频.搜狐视频.爱奇艺视频 音乐

LINQ to XML 编程基础

1.LINQ to XML类 以下的代码演示了如何使用LINQ to XML来快速创建一个xml: 隐藏行号 复制代码 ?创建 XML public static void CreateDocument() { string path = @"d:\website"; XDocument xdoc = new XDocument(new XDeclaration("1.0", "utf-8", "yes"), new XEle