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

子线程不能共享应用主线程的动态数组变量吗

2012-08-08 
子线程不能共享使用主线程的动态数组变量吗?子线程不能共享使用主线程的动态数组变量吗?在主线程定义了动

子线程不能共享使用主线程的动态数组变量吗?
子线程不能共享使用主线程的动态数组变量吗?

  在主线程定义了动态数组变量
如下所示:

 Type

  TArrayType: array of string;
   
  主窗体中

  A1:TArrayType;



  子线程:
  A1:TArrayType;


  setlength(A1,length(A1)+1);

  A1[0]:='aaaa';


 主窗口调用子线程
  var
  s: string;
  DataThread: TClientDataThread;
begin
  // create thread
  DataThread:= TClientDataThread.Create(true);  
  DataThread.A1:=A1; 

DataThread.resume;

  子线程执行后,发现主窗体中的动态数组变量长度还是0,如何共享呢?

[解决办法]
取消定义子线程里的a1。记得存取a1时要加锁,无论是主线程还是子线程。
[解决办法]
A1放到一个公用单元里面,并在这个公用单元里给出加解锁的方法。
[解决办法]
子线程直接加锁访问主线程变量

热点排行