子线程不能共享使用主线程的动态数组变量吗? 在主线程定义了动态数组变量
如下所示: 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,如何共享呢?
如下所示: 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,如何共享呢?
解决方案 »
- delphi xe2 是如何创建动态链接库的 *.dll
- 难!Delphi+BOM计算用量
- 在mdi窗体中,怎样才能使子窗体以有模式的状态显示?
- 关于Treeview的几点问题?
- dbgrid中,怎么控制某一列只允许输入数值类型,而不能输入其它的类型!
- 怎样能阻止用户向文本输入数字键以外的字符?
- 如何通过语句定位到grid的一个cell?
- 如在的delphi中gride中加入下拉框,等等就象pb那样?
- 哪里有csdn离线浏览器源码?
- Delphi6 Bug太多!
- 千分散尽求解析,delphi SOCKET通信发送带包头的XML文件,曾问100人无果
- Delphi7 自带的TCP通信例子,修改一下就出错,不知为何?
动态数组在同一线程赋值时,是把地址赋值,而在不同线程赋值时,就是重新复制了整个数据,从而有利两个不相关的动态数组 看来只能传指针了。发现指针还是可以保持同一变量
---------
不定义怎么赋值呢? 要不就要把主窗体名传递个子线程来