搜索
aardio官方社区 门户 查看主题

使用thread.command从线程内读取网页返回主线程,为什么数据不完整?

发布者: 村长大人 | 发布时间: 2018-5-11 15:12| 查看数: 740| 评论数: 2|帖子模式

现在在学习多线程的使用,在线程读取网页,然后用thread.command把数据回传给主线程,但回传数据不完整是为什么,在这里向看到的人请教一下。

  1. import win.ui;
  2. /*DSG{{*/
  3. var winform = win.form(text="线程命令";right=599;bottom=399)
  4. winform.add(
  5. edit={cls="edit";left=12;top=11;right=588;bottom=389;db=1;dl=1;dr=1;dt=1;edge=1;multiline=1;z=1}
  6. )
  7. /*}}*/

  8. import thread.command;
  9. var listener = thread.command();
  10. listener.print = function( ... ){
  11.     winform.edit.print( ... ) //我们在界面线程中这样响应工作线程的消息
  12. }

  13. //创建工作线程
  14. thread.invoke(

  15.     function(){
  16.    
  17.         //必须在线程函数内部导入需要的库
  18.         import thread.command;
  19.         import inet.http;
  20.         import console;
  21.         console.open()
  22.         var http = inet.http();
  23.         var TempTxt =   http.get("http://baidu.com");
  24.         //调用界面线程的命令
  25.         thread.command.print("hello world",1,2,TempTxt);
  26.         
  27.     }
  28. )


  29. winform.show();
  30. win.loopMessage();
复制代码

最新评论

Jacen.He 发表于 2018-5-11 16:23:28
不会传个参数都丢你的数据,
但是文本框不能无限制的塞文本进去。

遇到这类问题请先看一下函数说明,
winform.edit.print 只会输出有限的文本,后面的文本会覆盖前面的。
你可以自己修改限制,例如 winform.edit.limit = 120000;

村长大人 发表于 2018-5-14 08:19:05
Jacen.He 发表于 2018-5-11 16:23
不会传个参数都丢你的数据,
但是文本框不能无限制的塞文本进去。

试了一下,对的。感谢

  1. import win.ui;
  2. /*DSG{{*/
  3. var winform = win.form(text="线程命令";right=599;bottom=399)
  4. winform.add(
  5. edit={cls="edit";left=12;top=11;right=588;bottom=389;db=1;dl=1;dr=1;dt=1;edge=1;multiline=1;z=1}
  6. )
  7. /*}}*/

  8. import thread.command;
  9. var listener = thread.command();
  10. listener.print = function( ... ){
  11.     winform.edit.print( ... ) //我们在界面线程中这样响应工作线程的消息
  12. }
  13. winform.edit.limit = 120000;
  14. //创建工作线程
  15. thread.invoke(

  16.     function(){
  17.    
  18.         //必须在线程函数内部导入需要的库
  19.         import thread.command;
  20.         import inet.http;
  21.         import console;
  22.         console.open()
  23.         var http = inet.http();
  24.         var TempTxt =   http.get("http://baidu.com");
  25.         //调用界面线程的命令
  26.         thread.command.print("hello world",1,2,TempTxt);
  27.         
  28.     }
  29. )


  30. winform.show();
  31. win.loopMessage();
复制代码

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2018-7-21 09:38 , Processed in 0.046875 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表