aardio 文档
aardio 范例: 线程控件: https://www.aardio.com/zh-cn/doc/example/aardio/Thread/threadCtrl.html
线程控件
//线程控件: https://www.aardio.com/zh-cn/doc/example/aardio/Thread/threadCtrl.html
import win.ui;
/*DSG{{*/
var mainForm = win.form(text="在新线程内创建 web.view 浏览器控件";right=846;bottom=497)
mainForm.add(
button={cls="button";text="在线程内创建 WebView2 浏览器控件";left=463;top=455;right=798;bottom=492;db=1;dr=1;z=1}
)
/*}}*/
mainForm.button.oncommand = function(id,event){
mainForm.button.disabledText = ["✶","✸","✹","✺","✹","✷"]
mainForm.add(
threadCtrl = {
cls="thread";
marginTop=12;marginBottom=60;margionLeft=8;marginRight=8;//指定四周边距并自动缩放
//创建线程窗口的线程启动函数,必须是遵守多线程规则的纯函数
loadForm = function(threadParent){
import win.ui;//线程内使用的库必须在线程内导入
var winform = ..win.form(
right=599;bottom=399;parent=threadParent
);
import web.view;
var wb = web.view(winform);
//threadParent 或 winform.threadParent 都可以访问父窗口在当前线程的代理对象
wb.html = `<!doctype html><html><meta charset="utf-8"><body>`
+ winform.threadParent.text + "<br><br>
如果需要用多线程创建界面对象,很可能是无意义且不必要地将简单的事复杂化。
";
winform.show()
};
}
)
mainForm.button.disabled = false;
}
mainForm.show();
win.loopMessage();
Markdown 格式