python中3个while循环_Python3 里怎么让一个包含 while 循环的异步函数不断运行,而不阻塞正常的代码流程...
需求是用 tkinter 制作的 gui 工具,点击 [开始] 后在异步函数里 while 循环,点击 [停止] 后让 while 停止
目前的问题是 asyncio.create_task 遇到 asyncio.sleep 就中断了
实际的项目中用 threading.Thread()解决了,但是不甘心还是想试试用异步解决,但还没找到解决的方法
就目前的体验来说,python 异步用起来的体验没有 node.js 来的舒服,限制挺多的
import asyncio
import time
import tkinter
from tkinter import ttk
class Window:
def __init__(self):
self.__do_while = False
root = tkinter.Tk()
root.minsize(200, 200)
frame = ttk.Frame()
frame.pack(fill=tkinter.BOTH)
ttk.Button(frame, text='开始', command=self.start).pack()
ttk.Button(frame, text='停止', command=self.stop).pack(pady=10)
root.mainloop()
def start(self):
print(time.time())
self.__do_while = True
async def go():
# 只 print 了一次就结束了
asyncio.create_task(self.exec())
# 界面卡住了
# await asyncio.create_task(self.exec())
# 界面卡住了
# await self.exec()
asyncio.run(go())
print(time.time())
def stop(self):
self.__do_while = False
async def exec(self):
i = 0
while self.__do_while:
print('exec', i)
i += 1
await asyncio.sleep(2)
if __name__ == "__main__":
Window()
python中3个while循环_Python3 里怎么让一个包含 while 循环的异步函数不断运行,而不阻塞正常的代码流程...相关推荐
- python中while continue的用法_Python3 循环语句while/for/break/continue用法
介绍Python3中的循环,有while循环和for循环,循环控制有break,continue,也有else语句用来在循环一直执行完没有被break时执行. 工具/原料 Python3 方法/步骤 ...
- python中装饰器修复技术_python3之装饰器修复技术@wraps
普通函数 def f(): """ 这是一个用来测试装饰器修复技术的函数 """ print("哈哈哈") if __n ...
- python中的继承与多态_Python3 与 C# 面向对象之~继承与多态
2.继承 ¶ 2.1.单继承 ¶ 在OOP中,当我们定义一个Class的时候,可以从某个现有的Class继承 新的Class称为子类,而被继承的 ...
- python中fd是什么意思_python里fd是什么意思
文件描述字(file descriptor,fd)是系统中用来唯一记录当前已经打开的文件的标识号,fd是一个整数. 除了file对象外,Python还提供对fd的操作,对fd的操作更加底层,fd和Py ...
- python中time是什么意思_python3时间中time是什么?怎么转换?
对于时间如何使用似乎一直是人们不断追寻和探究的问题,不要等到错过最有活力的青春才后悔呀.在python中,也有时间需要我们去处理,相信大家对time不管是在学校学习的时候,还是在python的学习中都 ...
- python中遍历字典判断是否存在_Python基础之(判断,循环,列表,字典)
一.python介绍 Python是一种简单易学,功能强大的编程语言,它有高效率的高层数据结构,简单而有效地实现面向对象编程.Python简洁的语法和对动态输入的支持,再加上解释性语言的本质,使得它在 ...
- python中re是什么意思_python里的re是什么
定义 正则表达式是一个特殊的字符序列,能方便的检查一个字符串是否与某种模式匹配.re模块使得python拥有全部的正则表达式功能. 用途 通过使用正则表达式,可以: 测试字符串内的模式.-- 例如,可 ...
- python中def什么时候用_Python3中def的使用方法是什么
Python3中def的使用方法是什么 发布时间:2020-08-06 09:21:36 来源:亿速云 阅读:76 作者:小新 这篇文章将为大家详细讲解有关Python3中def的使用方法是什么,小编 ...
- python中花括号什么作用_Python3中小括号()、中括号[]、花括号{}的区别详解
介绍 在Python语言中最常见的括号有三种,分别是:小括号().中括号[].花括号{}:其作用也不相同,分别用来代表不同的Python基本内置数据类型. 小括号() Python中的小括号(): 代 ...
最新文章
- Blender模块化建筑环境地形场景制作视频教程 Creating modular environments
- Galaxy生物信息分析平台的数据集对象清理
- 【Groovy】闭包 Closure ( 闭包类 Closure 简介 | this、owner、delegate 成员赋值及源码分析 )
- Linux 命令利用scp实现从服务器共享地址上传下载文件、文件夹实例演示,scp命令的参数详解
- boost::mpl::greater相关的测试程序
- 事物与持久化_揭开Redis面纱,发布订阅、事务、安全、持久化
- Docker最全教程之Python爬网实战(二十二)
- Mybatis There is no getter for property named 'XXX' in 'class java.lang.XXX
- FFMPEG基于内存的转码实例
- 如何在 Flink 1.9 中使用 Hive?
- [纯技术讨论]从12306谈海量事务高速处理系统
- 老兵戴辉:华为操作系统28年史
- 2019.8.29C++工作错误记录——Socket编程中出现ws2def.h文件“应输入标识符”或“重定义”问题(VS2015)
- 基于色彩调和的专题图自动生成系统
- Python - 如何用turtle库画一个微笑表情包
- EL表达式与Jstl标签库学习
- 11.2 RAC 系列-安装新主机,识别老存储-识别ASM磁盘
- PolSARpro v5.1.3 处理Sentinel-1A SLC数据
- 三维几何 --- 计算几何模板
- ES6字符串新增方法
热门文章
- Cisco访问控制列表
- 页面前端的水有多深?再议页面开发
- RSA加解密用途简介及java示例
- Android 7.1 App Shortcuts使用
- php3.2接口分页,thinkphp3.2.3分页完整实例
- jupyter 服务器 显示不完全,Jupyter中显示DataFrame的行显示不完全
- 【C#】图片处理(底片,黑白,锐化,柔化,浮雕,雾化)
- mysql优于oracle的地方_MYSQL转为ORACLE要注意的地方
- [转载]INNO Setup 使用笔记
- (转)Page.ClientScript.RegisterStartupScript 与Page.ClientScript.RegisterClientScriptBlock 之间的区别...