HarmonyOS ArkTs-taskpool切换主线程问题
想要封装一个方法,在工作线程调用可以切换回主线程去执行指定方法。目前使用taskpool去实现,想通过taskpool的onReceiveData和sendData来实现上述需求,在实现过程中报function不能序列化的问题。
目前问题:
1.上述思路是否可行,是api使用出了问题吗?
2.是否有其他推荐的方式去完成这个需求?
代码:
// Utils.ets
/**
* 切换至主线程执行
*
* @param func 待执行方法
* @param args 参数
*/
public static async runOnUiThread(func?: Function, ...args: Object[]) {
// 这里构建了一个task,只用来sendData
let uiTask = new taskpool.Task((...args: Object[]) => {
taskpool.Task.sendData(...args);
});
// 设置回调函数func
uiTask.onReceiveData(func);
await taskpool.execute(uiTask);
}
// Demo.ets
// 这个方法我前面用taskpool调度,让它运行在工作线程了;
// 在这里调Utils.runOnUiThread,想测试方法是否可行
@Concurrent
function testRunOnUiThread() {
console.info('testRunOnUiThread: current tid = ' + process.tid);
// runOnUiTTT方法中只有一条console,输出内容拼接了一下'sss'
Utils.runOnUiThread(runOnUiTTT, 'sss');
}
public static runOnUiTTT(info: string) {
console.info('runOnUiTTT: ' + info + ' ' + process.tid);
}
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS主线程子线程切换问题
900浏览 • 1回复 待解决
TaskPool子线程和主线程如何通信
2527浏览 • 1回复 待解决
TaskPool如何跟主线程进行通信
730浏览 • 1回复 待解决
HarmonyOS 其他线程切换到主线程的api
333浏览 • 1回复 待解决
HarmonyOS ArkTS怎么控制子线程回到主线程
774浏览 • 1回复 待解决
在ArkTS的主线程中使用await会堵塞主线程吗
2492浏览 • 1回复 待解决
#鸿蒙通关秘籍#线程模型中,主线程和TaskPool Worker线程有啥区别?
372浏览 • 1回复 待解决
HarmonyOS 线程切换问题
663浏览 • 1回复 待解决
HarmonyOS taskpool线程并发问题
152浏览 • 1回复 待解决
HarmonyOS taskpool线程池数量问题
178浏览 • 0回复 待解决
HarmonyOS Worker主线程和子线程共享对象问题
194浏览 • 2回复 待解决
当切换到子线程之后如何判断是否为主线程?
562浏览 • 1回复 待解决
HarmonyOS Worker 与主线程通信问题
179浏览 • 1回复 待解决
HarmonyOS taskPool执行的task内如何回调主线程的方法
805浏览 • 1回复 待解决
HarmonyOS emitter 线程切换问题
608浏览 • 1回复 待解决
HarmonyOS TaskPool子线程单例问题
350浏览 • 1回复 待解决
HarmonyOS taskpool.Task 线程安全问题
261浏览 • 1回复 待解决
HarmonyOS taskPool线程池task入参问题
334浏览 • 1回复 待解决
Worker的宿主线程必须是主线程吗?
684浏览 • 1回复 待解决
HarmonyOS 大量数据处理导致主线程阻塞问题
35浏览 • 1回复 待解决
HarmonyOS 监听前后台切换能在taskpool开启的线程中监听吗?
294浏览 • 1回复 待解决
HarmonyOS ArkTS开发中,异步回调,怎么切到主线程执行呢
1005浏览 • 1回复 待解决
HarmonyOS 并发任务子线程之间、子线程与主线程内容不共享问题
654浏览 • 1回复 待解决
HarmonyOS 主线程刷新UI
460浏览 • 1回复 待解决
HarmonyOS ArkTS线程安全问题
622浏览 • 1回复 待解决
new TaskPool.task的函数必须使用@Concurrent装饰器装饰,可参考文档的参数说明,添加装饰器:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-taskpool-V5#constructor