worker使用class_mgnt获取object失败

在general_hardware组件里面通过实现worker来获取DPUCard的object对象:

local w = worker.new(0)

function dpu_yinshan:task_update_yinshan_temp(obj)

w:start(\[\[

            local worker = ...

            local log = require 'mc.logging'

            local object_name = worker:recv()

            local class_mgnt = require 'mc.class_mgnt'

            log:error('object_name1: %s', object_name)

            -- 通过对象名获取对象

            local dpu_obj = class_mgnt('DPUCard')\[obj_name\]

            log:error('dpu_obj Name: %s', dpu_obj.Name)

        \]\])

w:send(obj.name, true)

end

dpu_obj 获取失败,worker中难道是另外一个线程导致不能获取到general_hardware组件中的对象?

是否有解决办法?

是的,你可以理解他是在另一个独立的线程里面,两边的数据互不干扰。然后两个线程通过消息来通讯