S
sportman
Unregistered / Unconfirmed
GUEST, unregistred user!
紧急求救,多线程和VCl安全问题
我的程序是这样的:运行程序后,在主窗体的creatform中直接用begin
thread创建三四个
线程。每个线程都在不停地接收COM口传来的数据(实际上我用了八串口扩展卡,因为我
要接收多台其它机子的数据)。然后有许多richedit控件,将接收到的数据不断地显示
出来。在这许多控件中,有些是被某个线程独用的,有些是被多个线程共用的。
我的程序是要求永不停顿地运行的,在程序的任何地方我都没用endthread来结束这n个线
程(这有问题吗?)。
程序的异常现象是:
1、有时程序正在运行时,特别是多个com口传同时在传数据时,会兰屏掉。
2、更常见的是我退出,即主窗体的fromclose时,会兰屏。
我想知道的是:
1、大家常说的delphi中的vcl不是线程安全的,每个人的理解会有偏差,究竟是不同线
程用同一个vcl是不安全的呢还是一个线程用vcl就是不安全的呢?
2、在第1个问题的基础上,用begin
thread来创建线程是否不需考虑线程的同步问题?
要的话怎么样同步?因为我没有单独用delphi的Tthead来手工创建线程啊?
我的开发环境Pwin98se delphi5 用了flatstyle控件
要多少分请解答者自定。sportman@cmmail.com
我的程序是这样的:运行程序后,在主窗体的creatform中直接用begin
thread创建三四个
线程。每个线程都在不停地接收COM口传来的数据(实际上我用了八串口扩展卡,因为我
要接收多台其它机子的数据)。然后有许多richedit控件,将接收到的数据不断地显示
出来。在这许多控件中,有些是被某个线程独用的,有些是被多个线程共用的。
我的程序是要求永不停顿地运行的,在程序的任何地方我都没用endthread来结束这n个线
程(这有问题吗?)。
程序的异常现象是:
1、有时程序正在运行时,特别是多个com口传同时在传数据时,会兰屏掉。
2、更常见的是我退出,即主窗体的fromclose时,会兰屏。
我想知道的是:
1、大家常说的delphi中的vcl不是线程安全的,每个人的理解会有偏差,究竟是不同线
程用同一个vcl是不安全的呢还是一个线程用vcl就是不安全的呢?
2、在第1个问题的基础上,用begin
thread来创建线程是否不需考虑线程的同步问题?
要的话怎么样同步?因为我没有单独用delphi的Tthead来手工创建线程啊?
我的开发环境Pwin98se delphi5 用了flatstyle控件
要多少分请解答者自定。sportman@cmmail.com