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 的线程中执行么?
453浏览 • 1回复 待解决
利用worker子线程调用napi实现loop改写变量
1323浏览 • 1回复 待解决
HarmonyOS Worker 的 terminate 方法在执行完毕所有任务后再销毁
292浏览 • 1回复 待解决
Worker线程如何销毁?
589浏览 • 1回复 待解决
HarmonyOS taskPool执行的task内如何回调主线程的方法
1230浏览 • 1回复 待解决
请问如何判断当前执行的方法运行的子线程还是主线程,以及如何打印线程ID
699浏览 • 1回复 待解决
如何在C++子线程调用ArkTS方法?(线程安全)
2017浏览 • 1回复 待解决
HarmonyOS 在worker子线程使用promise方法时,有什么办法等待promise返回后再继续执行后面的代码吗?
375浏览 • 1回复 待解决
Worker的宿主线程必须是主线程吗?
835浏览 • 1回复 待解决
HarmonyOS worker线程和主线程支持内存共享
1009浏览 • 1回复 待解决
HarmonyOS 主线程中无法调用工作线程中实例化对象的方法
361浏览 • 1回复 待解决
Worker线程内存如何共享
2737浏览 • 1回复 待解决
HarmonyOS Worker主线程和子线程共享对象问题
431浏览 • 2回复 待解决
有什么简单的线程创建方法么?文档里的worker似乎没法用
719浏览 • 1回复 待解决
HarmonyOS主线程的napi_ref是否可以被worker线程使用?
919浏览 • 1回复 待解决
可以在一个Worker中调用worker.postMessage方法,向另一个Worker发送消息么?
1928浏览 • 1回复 待解决
HarmonyOS Worker 与主线程通信问题
402浏览 • 1回复 待解决
HarmonyOS A线程postMessageWithSharedSendable一个sendable 类到B线程,B线程执行类的方法时由于解析module失败crash
276浏览 • 1回复 待解决
宿主线程如何向worker子线程发送消息?
759浏览 • 1回复 待解决
HarmonyOS C++子线程调用ArkTS业务层接口方法
481浏览 • 1回复 待解决
HarmonyOS AppStorage是否支持在worker线程使用
501浏览 • 1回复 待解决
HarmonyOS 怎么判断worker线程创建了几个?
326浏览 • 0回复 待解决
HarmonyOS Worker线程中,如何保存成员对象?
454浏览 • 1回复 待解决
registerGlobalCallObject注册的对象中的方法在worker线程中通过callGlobalCallObjectMethod 调用时,是运行在宿主线程上的。