那很容易!而且您甚至不需要线程!但是,您必须稍微重组I /
O代码。Tk与Xt的XtAddInput()调用等效,它允许您注册一个回调函数,当在文件描述符上可以进行I /
O时,将从Tk主循环调用该函数。这是您需要的:
from Tkinter import tkintertkinter.createfilehandler(file, mask, callback)
该文件可以是Python文件或套接字对象(实际上是具有fileno()方法的任何对象),也可以是整数文件描述符。掩码是常量tkinter.READABLE或tkinter.WRITABLE之一。回调调用如下:
callback(file, mask)
完成后,您必须使用以下方法取消注册回调
tkinter.deletefilehandler(file)
注意:由于您不知道可以读取多少字节,因此无法使用Python文件对象的read或readline方法,因为这些方法将坚持读取预定义的字节数。对于套接字,recv()或recvfrom()方法可以正常工作;对于其他文件,请使用
os.read(file.fileno(),maxbytecount).
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)