0

我正在尝试在 pygtk 中开发下载器应用程序所以当用户添加一个 url 以下操作时

  • 添加网址()

调用

  • 验证网址()

  • 获取网址详细信息()

因此,由于延迟,将 url 添加到列表中需要一些urllib.urlopen时间,所以我尝试实现线程。我将以下代码添加到主窗口

thread.start_new_thread(addUrl, (self,url, )) 我传递了对主窗口的引用,以便我可以从线程访问列表,但似乎什么也没发生

4

1 回答 1

0

我认为你先检查这个线程如何在 Python 中使用线程?. 例如: 导入队列导入线程导入urllib2

# called by each thread
def get_url(q, url):
    q.put(urllib2.urlopen(url).read())

theurls = '''http://google.com http://yahoo.com'''.split()

q = Queue.Queue()

for u in theurls:
    t = threading.Thread(target=get_url, args = (q,u))
    t.daemon = True
    t.start()

s = q.get()
print s

希望这对您有所帮助。

于 2013-03-28T14:22:40.980 回答