多线程 Worker
关于游戏来说,,,每帧 16ms 是极其名贵的,,,若是有一些可以异步处理的使命,,,可以放置于 Worker 中运行,,,待运行竣事后,,,再把效果返回到主线程。。。。。Worker 运行于一个单独的全局上下文与线程中,,,不可直接挪用主线程的要领,,,Worker 也不具备渲染的能力。。。。。 Worker 与主线程之间的数据传输,,,双方使用 postMessage 来发送数据,,,onMessage 来吸收数据,,,传输的数据并不是直接共享,,,而是被复制的。。。。。
方法
1. 设置 Worker 信息
在 game.json 中可设置 Worker 代码放置的目录,,,目录下的代码将被打包成一个文件:
设置示例:
{
"workers": "workers"
}
2. 添加 Worker 代码文件
凭证方法 1 中的设置,,,在代码目录下新建以下两个入口文件:
workers/request/index.js
workers/request/utils.js
workers/response/index.js
添加后,,,目录结构如下:
├── game.js
├── game.json
├── project.config.json
└── workers
├── request
│ ├── index.js
│ └── utils.js
└── response
└── index.js
3. 编写 Worker 代码
在 workers/request/index.js 编写 Worker 响应代码
const utils = require('./utils')
worker.onMessage(function (res) {
console.log(res)
})
4. 在主线程中初始化 Worker
在主线程的代码 game.js 中初始化 Worker
const worker = wx.createWorker('workers/request/index.js') // 文件名指定 worker 的入口文件路径,,,绝对路径
5. 主线程向 Worker 发送新闻
worker.postMessage({
msg: 'hello worker'
})
worker 工具的其它接口请看 worker接口说明
Tips
Worker 最大并发数目限制为 1 个,,,建设下一个前请用 Worker.terminate 竣事目今 Worker
Worker 内代码只能 require 指定 Worker 路径内的文件,,,无法引用其它路径
Worker 的入口文件由 wx.createWorker 时指定,,,开发者可动态指定 Worker 入口文件
Worker 内不支持 wx 系列的 API
Workers 之间不支持发送新闻 点击更多 小程序游戏开发教程。。。。。
KESION pp电子软件
KESION pp电子软件是海内领先的在线教育软件及私域社交电商软件服务提供商,,,恒久专注于为企业提供在线教育软件及社交电商SaaS平台解决方案。。。。。
公司焦点产品云开店SaaS社交电商服务平台、在线教育SaaS服务平台、教育企业数字化SaaS云平台、企微营销助手、私有化自力安排品牌网校和在线教育咨询等。。。。。KESION 一直通过手艺立异,,,提供产品和服务,,,助力企业向数字化转型,,,通过科技驱动商业刷新,,,让商业变得更智慧!
许多时间,,,各人是不是有这种想法,,,开发的小程序,,,H5与小程序能否共用的一套代码,,,带后端并且可以提交给微信审核??????那么怎样做呢??????...
小程序页面跳转遇到事务多次执行,,,需要怎样解决,,,下面为各人介绍解决方法。。。。。...