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 的线程中执行么?
1012浏览 • 1回复 待解决
HarmonyOS 怎么解决worker的postMessage()频繁调用时,worker的onMessage()内的内容执行会滞后
1055浏览 • 1回复 待解决
利用worker子线程调用napi实现loop改写变量
2174浏览 • 1回复 待解决
HarmonyOS Worker 的 terminate 方法在执行完毕所有任务后再销毁
862浏览 • 1回复 待解决
HarmonyOS taskPool执行的task内如何回调主线程的方法
1892浏览 • 1回复 待解决
Worker线程如何销毁?
1134浏览 • 1回复 待解决
请问如何判断当前执行的方法运行的子线程还是主线程,以及如何打印线程ID
1332浏览 • 1回复 待解决
如何在C++子线程调用ArkTS方法?(线程安全)
3180浏览 • 1回复 待解决
HarmonyOS 在worker子线程使用promise方法时,有什么办法等待promise返回后再继续执行后面的代码吗?
878浏览 • 1回复 待解决
HarmonyOS worker线程和主线程支持内存共享
1642浏览 • 1回复 待解决
Worker的宿主线程必须是主线程吗?
1436浏览 • 1回复 待解决
HarmonyOS 主线程中无法调用工作线程中实例化对象的方法
951浏览 • 1回复 待解决
Worker线程内存如何共享
3406浏览 • 1回复 待解决
HarmonyOS Worker主线程和子线程共享对象问题
1294浏览 • 1回复 待解决
有什么简单的线程创建方法么?文档里的worker似乎没法用
1308浏览 • 1回复 待解决
HarmonyOS主线程的napi_ref是否可以被worker线程使用?
1545浏览 • 1回复 待解决
可以在一个Worker中调用worker.postMessage方法,向另一个Worker发送消息么?
2477浏览 • 1回复 待解决
HarmonyOS Worker 与主线程通信问题
1251浏览 • 1回复 待解决
HarmonyOS C++子线程调用ArkTS业务层接口方法
1289浏览 • 1回复 待解决
HarmonyOS A线程postMessageWithSharedSendable一个sendable 类到B线程,B线程执行类的方法时由于解析module失败crash
1003浏览 • 1回复 待解决
HarmonyOS AppStorage是否支持在worker线程使用
1085浏览 • 1回复 待解决
宿主线程如何向worker子线程发送消息?
1387浏览 • 1回复 待解决
HarmonyOS 怎么判断worker线程创建了几个?
841浏览 • 0回复 待解决
HarmonyOS Worker线程中,如何保存成员对象?
1004浏览 • 1回复 待解决
registerGlobalCallObject注册的对象中的方法在worker线程中通过callGlobalCallObjectMethod 调用时,是运行在宿主线程上的。