多线程中为什么一用TStrings、TStringList等就出错?? 定义的变量不是全局变量或者其他公共资源有点不解啊希望高手指点一下,,, 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 应该是在线程中修改TStringList或TStrings的内容了吧!应该上点代码看下! 确实是修改了记得以前看过TStrings是地址的方式操作但是我那个是局部变量 哎 有点费劲麻烦指点一下procedure notice();var notic :string; notic_line :tstrings;begin notic := 'test _testaaaaaaaaaaaaaaaa'; notic_line.Text := notic; frmmain.memo_notic.Lines.text := notic_line.Text;end;不是全部代码就是出错的这个地方调用代码是notic_Thread := CreateThread(nil, 0, @get_notice, nil, 0, get_notice_ID); 调用是notic_Thread := CreateThread(nil, 0, @notice, nil, 0, get_notice_ID); notic_line没初始化就用吗?这样肯定会报错的。而且,frmmain.memo_notic看来像是窗体上的控件,在多线程中对这种全局对象进行操作,不加锁肯定是有问题的 procedure notice();var notic :string; notic_line :TStringList;begin notic_line := TStringList.create; try notic := 'test _testaaaaaaaaaaaaaaaa'; notic_line.Text := notic; frmmain.memo_notic.Lines.text := notic_line.Text; finally notic_line.Free; endend; 你都没创建notic_line,和线程一点关系都没。 确实解决了但是我把notic_line :TStringList;换成notic_line :TStrings;就不行 这是为什么? notic_line :TStringList;换成notic_line :TStrings;就不行 这是为什么?因为不能申明TStrings single类型数据转字符串。。。。。。。。。。。。。 UDP聊天的问题? 请教大家关于exe导出函数的问题? Delphi5的程序为到用Delphi6打开后运行时报"找不到icmp.pas"文件的错呀!(在线) 如何在不连接数据库的AdoDataset中插入一行 请教:MSFlexGrid使用的问题,TextMatrix[0,0]“无效的参数数目” dbgrid 问题 如何增加三层分布式系统的用户数? 邮件发送问题? 请问如何在Label控件中使用不同的字体?或者说如何给一个字母加下标? dbgrid 如何删除多条记录 HOTKEY键值转换问题
确实是修改了
记得以前看过TStrings是地址的方式操作
但是我那个是局部变量 哎 有点费劲麻烦指点一下procedure notice();
var
notic :string;
notic_line :tstrings;
begin
notic := 'test _testaaaaaaaaaaaaaaaa';
notic_line.Text := notic;
frmmain.memo_notic.Lines.text := notic_line.Text;
end;
不是全部代码就是出错的这个地方
调用代码是notic_Thread := CreateThread(nil, 0, @get_notice, nil, 0, get_notice_ID);
notic_Thread := CreateThread(nil, 0, @notice, nil, 0, get_notice_ID);
而且,frmmain.memo_notic看来像是窗体上的控件,在多线程中对这种全局对象进行操作,不加锁肯定是有问题的
procedure notice();
var
notic :string;
notic_line :TStringList;
begin
notic_line := TStringList.create;
try
notic := 'test _testaaaaaaaaaaaaaaaa';
notic_line.Text := notic;
frmmain.memo_notic.Lines.text := notic_line.Text;
finally
notic_line.Free;
end
end;
确实解决了
但是我把notic_line :TStringList;换成notic_line :TStrings;就不行 这是为什么?