擅长:python、mysql、java
<p>试试这个:</p>
<pre><code>import time
import ctypes
def timer(hours):
seconds = hours * 3600
start = time.time()
elapsed = 0
while elapsed < seconds:
# Do something once every minute.
time.sleep(60)
elapsed = time.time() - start
elapsed = elapsed//60
ctypes.windll.user32.MessageBoxA(0,"Done "+str(elapsed) + " Hrs", "Done", 0)
timer(8)
</code></pre>
<p>问题是循环中没有<code>sleep()</code>,因此循环实际上每秒只运行数百到数千次或上万次,占用CPU。上面的代码将在重复循环之前等待1分钟。你知道吗</p>
<p>如果您在等待计时器时根本不需要执行任何操作,则可以完全避免循环,只需<code>sleep()</code>:</p>
<pre><code>import time
import ctypes
def timer(hours):
time.sleep(hours * 3600)
ctypes.windll.user32.MessageBoxA(0,"Done "+str(hours) + " Hrs", "Done", 0)
timer(8)
</code></pre>