当前位置: 首页 > 知识库问答 >
问题:

如何制作一个在后台运行的倒计时计时器,当程序运行结束时,它会终止程序?

虞华翰
2023-03-14

我正在用Python制作一个图形游戏《谁想成为百万富翁》。我希望用户有45秒的时间回答每个问题。然而,每当我在代码中放置一个计时器时,它会先等待45秒,然后让用户回答,而不是在后台运行,同时让用户回答。

共有2个答案

柯骏
2023-03-14

尝试使用time.time()。这将在uniXTime中返回自1970年1月1日以来的秒数。然后,您可以创建一个time循环,以便:

initial_time = time.time()
while time.time()-initial_time < 45:
    #Code

希望这有帮助!

房子昂
2023-03-14

您可以使用Python threading模块让两件事情同时发生,从而允许用户在计时器停止计时时回答问题。

一些利用这个的例子代码:

from threading import Thread
from time import sleep
import sys

def timer():
    for i in range(45):
        sleep(1)   #waits 45 seconds
    sys.exit() #stops program after timer runs out, you could also have it print something or keep the user from attempting to answer any longer

def question():
    answer = input("foo?")

t1 = Thread(target=timer)
t2 = Thread(target=question)
t1.start() #Calls first function
t2.start() #Calls second function to run at same time

它并不完美,但是这段代码应该启动两个不同的线程,一个询问一个问题,另一个在终止程序前超时45秒。有关< code >线程的更多信息,请参见文档。希望这对你的项目有所帮助!

 类似资料:
  • 我正在研究这个问题的类似例子。我们有一个JavaFX应用程序,它通过以下线程运行一些GUI更新:ScheduledExecutorService::scheduleAtFixedRate。 这类似于其他几个问题。我认为最像我情况的两个是: JavaFX任务线程未终止 然而,我需要解决的问题是下一步。我的目标是一个嵌入式应用程序,没有机会手动终止JVM任务或其他简单的答案,等等。我担心重启是为了一些

  • 问题内容: 每个Java应用程序都将在特定的Java虚拟机实例中运行。我真的在以下方面感到困惑,而Google搜索使我更加困惑。不同网站上的不同文章。 如果我有一个用Java编写的Web服务,它将需要一个JVM实例来运行,那么JVM可以成为守护进程吗? 如果是,当我们运行任何其他Java应用程序时,它将使用该JVM实例还是创建一个新的JVM? 任何机器上可用的主内存是恒定的。当我们同时启动n个Ja

  • 关于Java定时器类或ScheduledExecutorService接口,我可以在执行器线程(其他调度器)的运行方法(或TimerTask)内设置调度器(或定时器)吗? 案例研究:我有一个数据库,其中包含歌曲列表(10000首)和播放歌曲的时间表。 所以我想创建一个调度程序(比如1)(周期为1小时),它将搜索数据库,并为计划在一小时内播放的所有歌曲创建调度程序。 一小时后,scheduler1将

  • 问题内容: 我写了一个程序,现在我想计算程序从头到尾的总运行时间。 我怎样才能做到这一点? 问题答案: 使用System.nanoTime获取当前时间。 上面的代码以纳秒为单位打印程序的运行时间。

  • 问题内容: 如果我在无限循环中有一个线程,有没有办法在主程序结束时(例如,当我按 +时 )终止它? 问题答案: 检查这个问题。正确答案对如何以正确的方式终止线程有很好的解释: 是否有任何方法可以杀死Python中的线程? 要使线程在键盘中断信号(ctrl + c)上停止,您可以在退出之前捕获异常“ KeyboardInterrupt”并进行清除。像这样: 这样,您可以控制程序突然终止时的处理方式。

  • 本文向大家介绍易语言倒计时程序制作,包括了易语言倒计时程序制作的使用技巧和注意事项,需要的朋友参考一下 这里教大家怎么制作易语言倒计时程序,接下来大家看步骤就会明白了。 1、第一步添加按钮组件两个,编辑框一个,标签一个。透明标签两个。时钟一个。 再新建一个窗口程序集。 2、这里是新建的窗口程序集。有一个标签和透明标签。属性那里可以设置窗口无边框,然后标签把窗口覆盖,接着放入透明标签,什么字自己可以