DirectConnection
신호 방출은 연결된 슬롯의 즉각적인 호출을 유발합니다. 이것은 신호를 방출하는 객체의 실에서 슬롯 메소드가 실행된다는 것을 의미합니다. 슬롯 메소드가 스레드 안전하지 않으면 식별하기 어려운 미묘한 버그로 이어지는 경우 문제가 될 수 있습니다. 이 연결 유형을 사용하여 신호가 방출되면 이벤트가 신호를 수신하는 객체의 이벤트 루프에 게시됩니다. 이 이벤트는 컨트롤이 이벤트 루프로 돌아올 때마다 대기 및 실행됩니다. 이 방법은 스레드 사이의 올바른 동기화를 보장하고 슬롯 메소드가 스레드 안전 방식으로 호출되도록 보장합니다.
DirectConnection : 특히 스레드 안전성이 보장 될 때 같은 스레드에 상주하는 물체에 적합합니다.
구현 예
클래스 b : public qobject { q_object 공공의: void handlechange () { // 슬롯 로직을 구현합니다 } }; A와 B가 다른 스레드에 있다면 다음 코드는 다음과 같은 대기업을 설정합니다 :
class A : public QObject {
Q_OBJECT
public:
void emitSignal() {
emit somethingChanged();
}
};
자체 이벤트 루프에서 실행되어 스레드 간 통신을위한 안전하고 동기화 된 메커니즘을 제공합니다. 부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3