首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

在线程中访问主窗体的ClientSocket控件,安全吗?解决方法

2012-02-06 
在线程中访问主窗体的ClientSocket控件,安全吗?我在主窗体有个ClientSocket控件,另外一个线程中,取队列中

在线程中访问主窗体的ClientSocket控件,安全吗?

 我在主窗体有个ClientSocket控件,另外一个线程中,取队列中的数据,并把队列中的数据给发送出去。

 这个子线程中需要访问主窗体(主线程)中的ClientSocket控件:
 
 子线程如下:
 
  Form1->ClientSocket1->Socket->SendBuf(bufdata,Len);

这样就是多线程程序,会可能存在主窗体和子线程同时访问这个 ClientSocket不同操作。这样安不安全,冲不冲突。

如果存在,该怎样处理。

[解决办法]
如果操作不频繁,问题不大,
如果操作频繁,建议设置个变量限制一下,不要这个发送过程中,另一个线程又来发送数据。
[解决办法]
线程间同时操作某一对象或者某一变量的话 用线程临界区
[解决办法]
就算访问不频繁,也不能保证不冲突,同一时刻多个线程完全有可能同时访问同一个对象. 用临界,信号灯等同步机制才保险.

热点排行