Y young0098 Unregistered / Unconfirmed GUEST, unregistred user! 2003-12-14 #1 我启动一个线程,读取大量的数据,在线程中用memo.lines.add到主窗口的Tmemo组件上,结果在主窗口上点击菜单、拖动窗口等操作都没有响应,要等线程读完数据才有反映,难道用线程也不能解决这个问题吗?还是我线程用的不对?
我启动一个线程,读取大量的数据,在线程中用memo.lines.add到主窗口的Tmemo组件上,结果在主窗口上点击菜单、拖动窗口等操作都没有响应,要等线程读完数据才有反映,难道用线程也不能解决这个问题吗?还是我线程用的不对?
J jxhdy2001 Unregistered / Unconfirmed GUEST, unregistred user! 2003-12-19 #3 如果你使用了线程同步的话,当然会没响应啦! 因为主线程那时已经被阻塞了。
D dearwolf Unregistered / Unconfirmed GUEST, unregistred user! 2004-04-18 #5 我也遇到了同样的问题,如果用线程同步的话,主线程肯定会被阻塞,但是如果在子线程中添加的话,VCL又不支持,郁闷!!!!!!!!!!!
L LingWing Unregistered / Unconfirmed GUEST, unregistred user! 2004-04-18 #6 注意使用Application.ProcessMessage方法,这是简单而实用的。另外,更重要的一点是,用Memo.Lines.Add之类的方式来读取大量数据是不明智的,它的效率很低。你应该采取更为高效的方式。进行大量文本替换和其它处理时,也同样要注意到这种效率问题。多线程要用得其所,否则反而会将简单的问题复杂化。
注意使用Application.ProcessMessage方法,这是简单而实用的。另外,更重要的一点是,用Memo.Lines.Add之类的方式来读取大量数据是不明智的,它的效率很低。你应该采取更为高效的方式。进行大量文本替换和其它处理时,也同样要注意到这种效率问题。多线程要用得其所,否则反而会将简单的问题复杂化。