내가 무엇을하려고하는지 빨리 설명하겠습니다. 현재 2 개의 스레드로 구성된 프로그램이 있습니다. 하나의 작업자 스레드와 하나의 GUI 스레드, 작업자 스레드는 2kHz로 센서 데이터를 수집하고 GUI 스레드는 수집 된 데이터를 시각화합니다. 이 프로그램은 Qt 프레임 워크를 사용하여 C++로 작성되었습니다.싱글 톤을 사용하여 스레드간에 데이터 전달
신호 및 슬롯 옵션을 이미 시도했습니다. Qvector<PointF>
을 내 작업자 스레드의 신호로 내 GUI 스레드의 슬롯에 전달하여이 작업을 수행했습니다. 그러나 그때 데이터가 내 작업자가 멈추어 져있는 동안 "고르지 못한 데이터"에 문제가있었습니다.
그런 다음 싱글 톤을 사용하여 두 스레드간에 데이터를 전달할 생각을했고 여기에 주요 질문이옵니다. 은이 경우에 싱글 톤을 사용하고 있습니까? 아니면 문제를 해결할 더 좋은 방법이 있습니까?
나는 이미 데이터를 보호하기 위해 글로벌 Qvector<PointF>
과 글로벌 뮤텍스를 사용하여 개념을 테스트했지만, 대신 싱글 톤을 사용할 때 전역 변수가 훼손된다.
안부
Qt 신호/슬롯을 사용할 때 정확히 어떤 문제가 있습니까? 무엇이 노동자를 멈추게 했습니까? – JBL
신호/슬롯을 사용할 때 플롯 된 데이터가 고르지 않게 보였으므로 데이터를 수집하는 아날로그 장치에서도 많은 프레임이 누락되었다고 설명했습니다. – Mindstormer
Qt :: QueuedConnection을 사용하여 작업자가 비동기 통신 상태가되도록 데이터를 큐에 넣었습니까? – zeapo