用thread.start_new_thread(self.Init,())
这样反而更糟,好像发生死锁一样 界面无休止假死下去
如果顺序执行self.Init(),只看到进度条(我将运算放在dll中,在dll中发送主窗口进度条消息),有些地方是白的
我的self.Init()是放在在主窗口的__init__() 中,self.Show(True)之后
感觉是主窗口尚未显示完 运算就开始了,结果导致界面瘫痪
18 个解决方案
#1
用线程是对的,你应该把精力放在解决资源保护上。
#2
怎么保护呢?
#3
肯定需要多线程,lz不妨把代码贴出来看看
#4
代码太多了
现在最低要求,希望能在窗口完全显示后才开始进行运算
现在最低要求,希望能在窗口完全显示后才开始进行运算
#5
哦,有可能是我的dll种用了SendMessage()
这是同步的
改了之后再试试看
这是同步的
改了之后再试试看
#6
别用wxpython,一个一个模块装
#7
感觉还是像死机一样,已经用多线程了啊
#8
那应该是计算量太大了
每计算一段时间让计算线程sleep一下,看看会不会好一些
每计算一段时间让计算线程sleep一下,看看会不会好一些
#9
http://blog.donews.com/limodou/archive/2005/08/15/509966.aspx
看见这上面说的,子线程不能更新UI,应当交给主线程
但我dll中是PostMessage,应该是在主线程中更新的吧
看见这上面说的,子线程不能更新UI,应当交给主线程
但我dll中是PostMessage,应该是在主线程中更新的吧
#10
如果我在start_new_thread中不调用dll,而只是sleep(),不会假死
但如果调用dll,就会死掉
但如果调用dll,就会死掉
#11
而且我现在把dll中与主界面交互的注释掉了
就是一个普通的创建大文件的程序
就是一个普通的创建大文件的程序
#12
那在dll中sleep呢?
#13
我记得在demo中有个例子是callafter的,我做过,不是加载dll,也比较耗时3-4分钟(多线程).但没有lz那么夸张的要假死.
这个demo就是先生成图形再加载内容100X17个textctrl,同时我也在编辑textctrl的内容,比较卡而已。所以等加载完毕就流畅了.
这个demo就是先生成图形再加载内容100X17个textctrl,同时我也在编辑textctrl的内容,比较卡而已。所以等加载完毕就流畅了.
#14
可能会误解,demo是先生成图形再加载内容.
我做的是加载100x17个的内容填充.
我做的是加载100x17个的内容填充.
#15
我用ctype的dll就没事
但用Boost的dll就会假死,不知道怎么回事
但用Boost的dll就会假死,不知道怎么回事
#16
建议楼主看看代理模式,会对你有帮助的
#17
启动画面怎么实现啊?
#18
在wxPython中使用pyHook也遇到楼主一样的情况。。程序莫名其妙的假死!!
#1
用线程是对的,你应该把精力放在解决资源保护上。
#2
怎么保护呢?
#3
肯定需要多线程,lz不妨把代码贴出来看看
#4
代码太多了
现在最低要求,希望能在窗口完全显示后才开始进行运算
现在最低要求,希望能在窗口完全显示后才开始进行运算
#5
哦,有可能是我的dll种用了SendMessage()
这是同步的
改了之后再试试看
这是同步的
改了之后再试试看
#6
别用wxpython,一个一个模块装
#7
感觉还是像死机一样,已经用多线程了啊
#8
那应该是计算量太大了
每计算一段时间让计算线程sleep一下,看看会不会好一些
每计算一段时间让计算线程sleep一下,看看会不会好一些
#9
http://blog.donews.com/limodou/archive/2005/08/15/509966.aspx
看见这上面说的,子线程不能更新UI,应当交给主线程
但我dll中是PostMessage,应该是在主线程中更新的吧
看见这上面说的,子线程不能更新UI,应当交给主线程
但我dll中是PostMessage,应该是在主线程中更新的吧
#10
如果我在start_new_thread中不调用dll,而只是sleep(),不会假死
但如果调用dll,就会死掉
但如果调用dll,就会死掉
#11
而且我现在把dll中与主界面交互的注释掉了
就是一个普通的创建大文件的程序
就是一个普通的创建大文件的程序
#12
那在dll中sleep呢?
#13
我记得在demo中有个例子是callafter的,我做过,不是加载dll,也比较耗时3-4分钟(多线程).但没有lz那么夸张的要假死.
这个demo就是先生成图形再加载内容100X17个textctrl,同时我也在编辑textctrl的内容,比较卡而已。所以等加载完毕就流畅了.
这个demo就是先生成图形再加载内容100X17个textctrl,同时我也在编辑textctrl的内容,比较卡而已。所以等加载完毕就流畅了.
#14
可能会误解,demo是先生成图形再加载内容.
我做的是加载100x17个的内容填充.
我做的是加载100x17个的内容填充.
#15
我用ctype的dll就没事
但用Boost的dll就会假死,不知道怎么回事
但用Boost的dll就会假死,不知道怎么回事
#16
建议楼主看看代理模式,会对你有帮助的
#17
启动画面怎么实现啊?
#18
在wxPython中使用pyHook也遇到楼主一样的情况。。程序莫名其妙的假死!!