이벤트가 내 제어하에 있지 않은 다른 스레드에 의해 트리거 될 때 js 함수를 다시 호출해야하는 노드 C++ 애드온을 만듭니다 (실제로는 .net 스레드를 사용하는 관리되는 DLL에서. JS 세계는 단일 스레드이므로 js 함수 참조를 유지하고 해당 비 js 스레드에서 호출 할 수는 없습니다. 내가 그 스레드에서 해당 콜백 함수에 전달하려는 매개 변수를 만들 수 없습니다.Node.js C++ addon : 다른 스레드의 다중 콜백
js 스레드에서 작업을 옮기고 끝내고 js 스레드에서 다시 호출하여 예를 들어 수행해야 할 작업을 수행하려는 경우에 uv_queue_work
이 사용되는 것을 보았습니다. js 함수를 다시 호출합니다. 반면,
int uv_queue_work(uv_loop_t* loop, uv_work_t* req, uv_work_cb work_cb,
uv_after_work_cb after_work_cb);
이 uv_queue_work를 호출하면 일회성 작업에 괜찮습니다, 나는 아마 after_work_cb
에서 uv_queue_work
에 전화를 체인 임의로 종종 나에게 전화를 얻을 수 : 나중에 참고로
work_cb
은 다른 스레드와 동기화되지만보다 직접적인 방법이 없는지 궁금합니다.
node.js에서 제공하는 fn과 유사하며 다음 번에 주 js 스레드에서 실행될 코드를 가리키는 fn 포인터로 다른 스레드에서 직접 호출 할 수 있습니다. 어떤 생각?
스폿으로 끝날 것 에! 정확히 내가 필요로하는 것. –