Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4736969
  • 博文数量: 206
  • 博客积分: 5240
  • 博客等级: 大校
  • 技术积分: 3224
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-12 21:40
文章分类

全部博文(206)

文章存档

2013年(13)

2012年(8)

2011年(33)

2010年(152)

我的朋友

分类: 敏捷开发

2013-10-05 22:50:38

下面的代码演示应用程序在 main.aau 中调用 process.main 创建新进程,
并方便的传输命令行参数( 支持在参数中直接传递 table 对象 )

进程间窗口可以使用 win.sendCopyData() 发送数据(支持字符串或table对象)
可以在窗口中使用 winform.onCopyData 函数方便的接收数据. 轻松实现进程间通信.

创建一个工程,在main.aau中输入下面的代码:

如果使用web窗体打开网页,使用下面的方法可以使用进程来代替线程, 进程关闭可以彻底释放网页所占用的内存( 现在新的浏览器基本都是一个网页一个进程,原理类似 )


  1. import win.ui;
  2. /*DSG{{*/
  3. mainForm = ..win.form( top=-2;bottom=400;parent=...;right=600;left=-2;text="AAuto Form" )
  4. mainForm.add(
  5. button={ bottom=69;right=240;left=31;top=20;z=1;text="创建新进程";cls="button" };
  6. edit={ bottom=372;text="edit";left=30;multiline=1;top=79;z=2;right=544;edge=1;cls="edit" }
  7. )
  8. /*}}*/

  9. import process.main;
  10. mainForm.button.oncommand = function(id,event){
  11.     //为当前应用程序创建新进程(开发环境中使用线程模拟)
  12.     process.main.start (
  13.         name = "一鹤";
  14.         run = "/什么什么";
  15.         title = "自定义标题" + tostring( time() );
  16.         fromHwnd = mainForm.hwnd
  17.     )
  18. }

  19. var args = process.main.parseCommandLine( ... );
  20. if(args){
  21.     mainForm.text = args.title;

  22.     win.sendCopyData( args.fromHwnd,{ text = "你好,我是新进程";fromHwnd = mainForm.hwnd } )
  23. }

  24. mainForm.onCopyData = function(data){
  25.     mainForm.edit.appendText( data.text );
  26.     win.setPos( data.fromHwnd,1,1)
  27. }

  28. mainForm.show()
  29. win.loopMessage();

阅读(2439) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~