LanZouCloud-API icon indicating copy to clipboard operation
LanZouCloud-API copied to clipboard

在线程中使用,不会下载

Open blueflagbj opened this issue 5 years ago • 1 comments
trafficstars

我在线程中使用出现不下载的情况,使用的函数 def lanzoudown(self,url): print("蓝奏云.地址:..%s" % url) lzy = LanZouCloud()
code = lzy.down_file_by_url(url) 开启线程的代码 for l in downUrlList: # 判断是不是蓝奏云 if "www.lanzous.com" in l: t = threading.Thread(target=self.lanzoudown, args=(l,)) t.start() 如果不使用线程的话如下,直接使用会卡顿,如何正确的在线程中使用啊? lzy = LanZouCloud()
code = lzy.down_file_by_url(url)

blueflagbj avatar Apr 03 '20 09:04 blueflagbj

API 没有打算直接支持多线程,操作会阻塞当前的线程。如果你想使用多线程,最好创建一个类,继承 threading.Thread ,因为子线程一旦启动,主线程就没办法实时处理函数返回的错误。可以参考CMD版v2.4.3 改成了多线程下载上传。如果不想搞得这么复杂,可以使用 ThreadPoolExecutor 。最好设置一个回调函数显示进度,不然你不知道子线程是否在下载,可能是下载的时候出了问题,进程结束了。

zaxtyson avatar Apr 03 '20 13:04 zaxtyson