📄 glib-timers.html
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"><title>Timers</title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2"><link rel="start" href="index.html" title="GLib Reference Manual"><link rel="up" href="glib-utilities.html" title="GLib Utilities"><link rel="prev" href="glib-Automatic-String-Completion.html" title="Automatic String Completion"><link rel="next" href="glib-Spawning-Processes.html" title="Spawning Processes"><meta name="generator" content="GTK-Doc V1.9 (XML mode)"><link rel="stylesheet" href="style.css" type="text/css"><link rel="chapter" href="glib.html" title="GLib Overview"><link rel="chapter" href="glib-fundamentals.html" title="GLib Fundamentals"><link rel="chapter" href="glib-core.html" title="GLib Core Application Support"><link rel="chapter" href="glib-utilities.html" title="GLib Utilities"><link rel="chapter" href="glib-data-types.html" title="GLib Data Types"><link rel="chapter" href="tools.html" title="GLib Tools"><link rel="index" href="ix01.html" title="Index"><link rel="index" href="ix02.html" title="Index of deprecated symbols"><link rel="index" href="ix03.html" title="Index of new symbols in 2.2"><link rel="index" href="ix04.html" title="Index of new symbols in 2.4"><link rel="index" href="ix05.html" title="Index of new symbols in 2.6"><link rel="index" href="ix06.html" title="Index of new symbols in 2.8"><link rel="index" href="ix07.html" title="Index of new symbols in 2.10"><link rel="index" href="ix08.html" title="Index of new symbols in 2.12"><link rel="index" href="ix09.html" title="Index of new symbols in 2.14"><link rel="index" href="ix10.html" title="Index of new symbols in 2.16"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="glib-Automatic-String-Completion.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td><td><a accesskey="u" href="glib-utilities.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td><td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td><th width="100%" align="center">GLib Reference Manual</th><td><a accesskey="n" href="glib-Spawning-Processes.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td></tr><tr><td colspan="5" class="shortcuts"><nobr><a href="#id3095448" class="shortcut">Top</a>  |  <a href="#id3095627" class="shortcut">Description</a></nobr></td></tr></table><div class="refentry" lang="en"><a name="glib-Timers"></a><div class="titlepage"></div><div class="refnamediv"><table width="100%"><tr><td valign="top"><h2><a name="id3095448"></a><span class="refentrytitle">Timers</span></h2><p>Timers — keep track of elapsed time</p></td><td valign="top" align="right"></td></tr></table></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">#include <glib.h> <a class="link" href="glib-Timers.html#GTimer">GTimer</a>;<a class="link" href="glib-Timers.html#GTimer">GTimer</a>* <a class="link" href="glib-Timers.html#g-timer-new">g_timer_new</a> (void);void <a class="link" href="glib-Timers.html#g-timer-start">g_timer_start</a> (<a class="link" href="glib-Timers.html#GTimer">GTimer</a> *timer);void <a class="link" href="glib-Timers.html#g-timer-stop">g_timer_stop</a> (<a class="link" href="glib-Timers.html#GTimer">GTimer</a> *timer);void <a class="link" href="glib-Timers.html#g-timer-continue">g_timer_continue</a> (<a class="link" href="glib-Timers.html#GTimer">GTimer</a> *timer);<a class="link" href="glib-Basic-Types.html#gdouble">gdouble</a> <a class="link" href="glib-Timers.html#g-timer-elapsed">g_timer_elapsed</a> (<a class="link" href="glib-Timers.html#GTimer">GTimer</a> *timer, <a class="link" href="glib-Basic-Types.html#gulong">gulong</a> *microseconds);void <a class="link" href="glib-Timers.html#g-timer-reset">g_timer_reset</a> (<a class="link" href="glib-Timers.html#GTimer">GTimer</a> *timer);void <a class="link" href="glib-Timers.html#g-timer-destroy">g_timer_destroy</a> (<a class="link" href="glib-Timers.html#GTimer">GTimer</a> *timer);</pre></div><div class="refsect1" lang="en"><a name="id3095627"></a><h2>Description</h2><p><a class="link" href="glib-Timers.html#GTimer"><span class="type">GTimer</span></a> records a start time, and counts microseconds elapsed since that time.This is done somewhat differently on different platforms, and can be tricky toget exactly right, so <a class="link" href="glib-Timers.html#GTimer"><span class="type">GTimer</span></a> provides a portable/convenient interface.</p></div><div class="refsect1" lang="en"><a name="id3095661"></a><h2>Details</h2><div class="refsect2" lang="en"><a name="id3095671"></a><h3><a name="GTimer"></a>GTimer</h3><a class="indexterm" name="id3095684"></a><pre class="programlisting">typedef struct _GTimer GTimer;</pre><p>Opaque datatype that records a start time. </p></div><hr><div class="refsect2" lang="en"><a name="id3095700"></a><h3><a name="g-timer-new"></a>g_timer_new ()</h3><a class="indexterm" name="id3095712"></a><pre class="programlisting"><a class="link" href="glib-Timers.html#GTimer">GTimer</a>* g_timer_new (void);</pre><p>Creates a new timer, and starts timing (i.e. <a class="link" href="glib-Timers.html#g-timer-start"><code class="function">g_timer_start()</code></a> is implicitlycalled for you).</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td><td>a new <a class="link" href="glib-Timers.html#GTimer"><span class="type">GTimer</span></a>.</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3095768"></a><h3><a name="g-timer-start"></a>g_timer_start ()</h3><a class="indexterm" name="id3095780"></a><pre class="programlisting">void g_timer_start (<a class="link" href="glib-Timers.html#GTimer">GTimer</a> *timer);</pre><p>Marks a start time, so that future calls to <a class="link" href="glib-Timers.html#g-timer-elapsed"><code class="function">g_timer_elapsed()</code></a> will report thetime since <a class="link" href="glib-Timers.html#g-timer-start"><code class="function">g_timer_start()</code></a> was called. <a class="link" href="glib-Timers.html#g-timer-new"><code class="function">g_timer_new()</code></a> automatically marks thestart time, so no need to call <a class="link" href="glib-Timers.html#g-timer-start"><code class="function">g_timer_start()</code></a> immediately after creating thetimer.</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><p><span class="term"><em class="parameter"><code>timer</code></em> :</span></p></td><td>a <a class="link" href="glib-Timers.html#GTimer"><span class="type">GTimer</span></a>.</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3095880"></a><h3><a name="g-timer-stop"></a>g_timer_stop ()</h3><a class="indexterm" name="id3095892"></a><pre class="programlisting">void g_timer_stop (<a class="link" href="glib-Timers.html#GTimer">GTimer</a> *timer);</pre><p>Marks an end time, so calls to <a class="link" href="glib-Timers.html#g-timer-elapsed"><code class="function">g_timer_elapsed()</code></a> will return the differencebetween this end time and the start time.</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><p><span class="term"><em class="parameter"><code>timer</code></em> :</span></p></td><td>a <a class="link" href="glib-Timers.html#GTimer"><span class="type">GTimer</span></a>.</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3095958"></a><h3><a name="g-timer-continue"></a>g_timer_continue ()</h3><a class="indexterm" name="id3095974"></a><pre class="programlisting">void g_timer_continue (<a class="link" href="glib-Timers.html#GTimer">GTimer</a> *timer);</pre><p>Resumes a timer that has previously been stopped with <a class="link" href="glib-Timers.html#g-timer-stop"><code class="function">g_timer_stop()</code></a>.<a class="link" href="glib-Timers.html#g-timer-stop"><code class="function">g_timer_stop()</code></a> must be called before using this function.</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><p><span class="term"><em class="parameter"><code>timer</code></em> :</span></p></td><td>a <a class="link" href="glib-Timers.html#GTimer"><span class="type">GTimer</span></a>.</td></tr></tbody></table></div><p class="since">Since 2.4</p></div><hr><div class="refsect2" lang="en"><a name="id3096057"></a><h3><a name="g-timer-elapsed"></a>g_timer_elapsed ()</h3><a class="indexterm" name="id3096070"></a><pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gdouble">gdouble</a> g_timer_elapsed (<a class="link" href="glib-Timers.html#GTimer">GTimer</a> *timer, <a class="link" href="glib-Basic-Types.html#gulong">gulong</a> *microseconds);</pre><p>If <em class="parameter"><code>timer</code></em> has been started but not stopped, obtains the time since the timer wasstarted. If <em class="parameter"><code>timer</code></em> has been stopped, obtains the elapsed time between the timeit was started and the time it was stopped. The return value is the number ofseconds elapsed, including any fractional part. The <em class="parameter"><code>microseconds</code></em>out parameter is essentially useless.</p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>Calling initialization functions, in particular <a class="link" href="glib-Threads.html#g-thread-init"><code class="function">g_thread_init()</code></a>,while a timer is running will cause invalid return values from this function.</p></div><p></p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><p><span class="term"><em class="parameter"><code>timer</code></em> :</span></p></td><td>a <a class="link" href="glib-Timers.html#GTimer"><span class="type">GTimer</span></a>.</td></tr><tr><td><p><span class="term"><em class="parameter"><code>microseconds</code></em> :</span></p></td><td>return location for the fractional part of seconds elapsed, in microseconds (that is, the total number of microseconds elapsed, modulo 1000000), or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></td></tr><tr><td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td><td>seconds elapsed as a floating point value, including any fractional part.</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3096210"></a><h3><a name="g-timer-reset"></a>g_timer_reset ()</h3><a class="indexterm" name="id3096222"></a><pre class="programlisting">void g_timer_reset (<a class="link" href="glib-Timers.html#GTimer">GTimer</a> *timer);</pre><p>This function is useless; it's fine to call <a class="link" href="glib-Timers.html#g-timer-start"><code class="function">g_timer_start()</code></a> on analready-started timer to reset the start time, so <a class="link" href="glib-Timers.html#g-timer-reset"><code class="function">g_timer_reset()</code></a> serves nopurpose.</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><p><span class="term"><em class="parameter"><code>timer</code></em> :</span></p></td><td>a <a class="link" href="glib-Timers.html#GTimer"><span class="type">GTimer</span></a>.</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id3096300"></a><h3><a name="g-timer-destroy"></a>g_timer_destroy ()</h3><a class="indexterm" name="id3096312"></a><pre class="programlisting">void g_timer_destroy (<a class="link" href="glib-Timers.html#GTimer">GTimer</a> *timer);</pre><p>Destroys a timer, freeing associated resources.</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><p><span class="term"><em class="parameter"><code>timer</code></em> :</span></p></td><td>a <a class="link" href="glib-Timers.html#GTimer"><span class="type">GTimer</span></a> to destroy.</td></tr></tbody></table></div></div></div><div class="refsect1" lang="en"><a name="id3096369"></a><div class="refsect2" lang="en"><a name="id3096370"></a></div><hr><div class="refsect2" lang="en"><a name="id3096371"></a></div></div></div></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -