HarmonyOS Worker callGlobalCallObjectMethod 调用方法的执行线程
// entry
const workerInstance = new worker.ThreadWorker("entry/ets/workers/worker.ts");
class TestObj {
private message : string = "this is a message from TestObj"
public getMessage() : string {
return this.message;
}
public getMessageWithInput(str : string) : string {
return this.message + " with input: " + str;
}
}
let registerObj = new TestObj();
// 在ThreadWorker实例上注册registerObj
workerInstance.registerGlobalCallObject("myObj", registerObj);
// worker.ts
import worker, { MessageEvents } from '@ohos.worker';
const workerPort = worker.workerPort;
workerPort.onmessage = (e: MessageEvents): void => {
try {
// 调用方法无入参
let res : string = workerPort.callGlobalCallObjectMethod("myObj", "getMessage", 0) as string;
console.info("worker:", res) // worker: this is a message from TestObj
} catch (error) {
// 异常处理
console.error("worker: error code is " + error.code + " error message is " + error.message);
}
}
demo 如上
worker 通过callGlobalCallObjectMethod 调用getMessage 方法,getMessage 的执行线程 本地打印process.tid 还是宿主线程(主线程),非worker 子线程。
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS 能够在主线程给 Worker 传递一个函数,让这个函数在 Worker 的线程中执行么?
1001浏览 • 1回复 待解决
HarmonyOS 怎么解决worker的postMessage()频繁调用时,worker的onMessage()内的内容执行会滞后
1036浏览 • 1回复 待解决
利用worker子线程调用napi实现loop改写变量
2082浏览 • 1回复 待解决
HarmonyOS Worker 的 terminate 方法在执行完毕所有任务后再销毁
843浏览 • 1回复 待解决
Worker线程如何销毁?
1115浏览 • 1回复 待解决
HarmonyOS taskPool执行的task内如何回调主线程的方法
1869浏览 • 1回复 待解决
请问如何判断当前执行的方法运行的子线程还是主线程,以及如何打印线程ID
1316浏览 • 1回复 待解决
如何在C++子线程调用ArkTS方法?(线程安全)
3102浏览 • 1回复 待解决
HarmonyOS 在worker子线程使用promise方法时,有什么办法等待promise返回后再继续执行后面的代码吗?
872浏览 • 1回复 待解决
Worker线程内存如何共享
3376浏览 • 1回复 待解决
HarmonyOS worker线程和主线程支持内存共享
1612浏览 • 1回复 待解决
HarmonyOS 主线程中无法调用工作线程中实例化对象的方法
914浏览 • 1回复 待解决
Worker的宿主线程必须是主线程吗?
1413浏览 • 1回复 待解决
HarmonyOS Worker主线程和子线程共享对象问题
1238浏览 • 1回复 待解决
HarmonyOS主线程的napi_ref是否可以被worker线程使用?
1508浏览 • 1回复 待解决
有什么简单的线程创建方法么?文档里的worker似乎没法用
1292浏览 • 1回复 待解决
可以在一个Worker中调用worker.postMessage方法,向另一个Worker发送消息么?
2449浏览 • 1回复 待解决
HarmonyOS Worker 与主线程通信问题
1218浏览 • 1回复 待解决
HarmonyOS C++子线程调用ArkTS业务层接口方法
1279浏览 • 1回复 待解决
HarmonyOS A线程postMessageWithSharedSendable一个sendable 类到B线程,B线程执行类的方法时由于解析module失败crash
973浏览 • 1回复 待解决
宿主线程如何向worker子线程发送消息?
1368浏览 • 1回复 待解决
HarmonyOS AppStorage是否支持在worker线程使用
1058浏览 • 1回复 待解决
如何创建一个worker线程
2045浏览 • 1回复 待解决
#鸿蒙通关秘籍#鸿蒙应用中如何使用UI主线程调用多线程方法?
1291浏览 • 1回复 待解决
registerGlobalCallObject注册的对象中的方法在worker线程中通过callGlobalCallObjectMethod 调用时,是运行在宿主线程上的。