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
待解决
相关问题
利用worker子线程调用napi实现loop改写变量
1117浏览 • 1回复 待解决
HarmonyOS 能够在主线程给 Worker 传递一个函数,让这个函数在 Worker 的线程中执行么?
167浏览 • 1回复 待解决
HarmonyOS Worker 的 terminate 方法在执行完毕所有任务后再销毁
75浏览 • 1回复 待解决
Worker线程如何销毁?
456浏览 • 1回复 待解决
HarmonyOS taskPool执行的task内如何回调主线程的方法
732浏览 • 1回复 待解决
HarmonyOS 在worker子线程使用promise方法时,有什么办法等待promise返回后再继续执行后面的代码吗?
133浏览 • 1回复 待解决
请问如何判断当前执行的方法运行的子线程还是主线程,以及如何打印线程ID
373浏览 • 1回复 待解决
如何在C++子线程调用ArkTS方法?(线程安全)
1534浏览 • 1回复 待解决
Worker线程内存如何共享
2437浏览 • 1回复 待解决
可以在一个Worker中调用worker.postMessage方法,向另一个Worker发送消息么?
1790浏览 • 1回复 待解决
HarmonyOS 主线程中无法调用工作线程中实例化对象的方法
128浏览 • 1回复 待解决
HarmonyOS Worker主线程和子线程共享对象问题
91浏览 • 2回复 待解决
HarmonyOS主线程的napi_ref是否可以被worker线程使用?
510浏览 • 1回复 待解决
HarmonyOS worker线程和主线程支持内存共享
700浏览 • 1回复 待解决
Worker的宿主线程必须是主线程吗?
567浏览 • 1回复 待解决
有什么简单的线程创建方法么?文档里的worker似乎没法用
389浏览 • 1回复 待解决
HarmonyOS C++子线程调用ArkTS业务层接口方法
80浏览 • 1回复 待解决
宿主线程如何向worker子线程发送消息?
436浏览 • 1回复 待解决
HarmonyOS AppStorage是否支持在worker线程使用
140浏览 • 1回复 待解决
HarmonyOS Worker 与主线程通信问题
94浏览 • 1回复 待解决
如何创建一个worker线程
1042浏览 • 1回复 待解决
#鸿蒙通关秘籍#鸿蒙应用中如何使用UI主线程调用多线程方法?
202浏览 • 1回复 待解决
ets中创建Worker线程,创建Worker传入的url文件只能是js后缀吗?
4741浏览 • 1回复 待解决
Worker和TaskPool的线程数是否受到限制?
530浏览 • 1回复 待解决
registerGlobalCallObject注册的对象中的方法在worker线程中通过callGlobalCallObjectMethod 调用时,是运行在宿主线程上的。