使用PyVista进行多线程发现开启多个线程显示窗口,窗口会卡死,怎么解决

2021-04-06 14:07发布

5条回答

我们知道,在使用pyqt显示图片或者视频流的时候,要使用到QThread这个多线程来进行图片或者视频流的显示,但是,如果是多个窗口进行显示的话,在我这,是经常性的遇见视频显示中途开始没有变化,换句话说,就是卡住了,那咋办呢?


最初,我的想法是使用time.sleep来对进程线程之间的数据传输进行压力的缓解,但是,很可惜,虽然有效果,但是效果不好。也是刚刚,突发奇想,难道不是我的QThread之间相互造成干扰导致的界面卡住?于是,我就尝试着在两个QThread之间进行time.sleep,然后,这个卡住问题就解决了,漂亮。代码展示如下:


        p = imageThread(image0)

        p.run()

        time.sleep(0.01) # 这一行代码很重要,否则整个界面很可能会卡住

        p1 = imageThread1(image1)

        p1.run()

p和P1分别是两个qthread进程,我让这两个进程先后进行,解决问题。


嘿呦嘿呦拔萝卜
3楼 · 2021-04-08 11:13

p = imageThread(image0)

        p.run()

        time.sleep(0.01) # 这一行代码很重要,否则整个界面很可能会卡住

        p1 = imageThread1(image1)

        p1.run()

p和P1分别是两个qthread进程,我让这两个进程先后进行,解决问题。


cccc
4楼 · 2021-04-08 12:17

我们知道,在使用pyqt显示图片或者视频流的时候,要使用到QThread这个多线程来进行图片或者视频流的显示,但是,如果是多个窗口进行显示的话,在我这,是经常性的遇见视频显示中途开始没有变化,换句话说,就是卡住了,那咋办呢?


最初,我的想法是使用time.sleep来对进程线程之间的数据传输进行压力的缓解,但是,很可惜,虽然有效果,但是效果不好。也是刚刚,突发奇想,难道不是我的QThread之间相互造成干扰导致的界面卡住?于是,我就尝试着在两个QThread之间进行time.sleep,然后,这个卡住问题就解决了,漂亮。代码展示如下:


        p = imageThread(image0)

        p.run()

        time.sleep(0.01) # 这一行代码很重要,否则整个界面很可能会卡住

        p1 = imageThread1(image1)

        p1.run()

p和P1分别是两个qthread进程,我让这两个进程先后进行,解决问题。


小甜甜
5楼 · 2021-04-09 18:12

        p = imageThread(image0)

        p.run()

        time.sleep(0.01) # 这一行代码很重要,否则整个界面很可能会卡住

        p1 = imageThread1(image1)

        p1.run()


任@先生
6楼 · 2021-04-11 16:24

p = imageThread(image0)

        p.run()

        time.sleep(0.01) # 这一行代码很重要,否则整个界面很可能会卡住

        p1 = imageThread1(image1)

        p1.run()

p和P1分别是两个qthread进程,我让这两个进程先后进行,解决问题。