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

问个有关线程的有关问题

2012-04-10 
问个有关线程的问题function getStringList(s1,s2:string) : TStringListHandle createThread(nil,0,@g

问个有关线程的问题
function getStringList(s1,s2:string) : TStringList;

Handle = createThread(nil,0,@getStringList,?,0,ID);

问题一。?这里怎么填
问题二。如何获得线程结束后getStringList的返回值TStringList?

[解决办法]
CreateThread(nil, 0,@getStringList, nil, 0, ID);
倒数第三个参数应该是指针类型的,s1,s2:string是字符串,我也不知道怎么传
[解决办法]
1,CreateThread(nil, 0,@getStringList, nil, 0, ID);这么传就行。
2,其实线程这么实现是不好的,要问我为什么,一句两句说不清。
你的情况可以定义个全局的TStringList变量,线程函数里操作它
[解决办法]
直接取不了线程函数返回值,因为CreateThread启动线程后,代码已经执行完毕了,但线程还没结束
真不知道去那里取值?

所以一般做法是要用中间量保存,比如定义一个全局变量

[解决办法]
首先你不知道线程何时结束。你无法取返回值。
如果你要等待线程结束,再取,那线程就没有意义。
所以,线程结束后,应该主动报告自己已结束,并发送返回值到主线程。具体可用消息实现

热点排行