Tôi đã tìm hiểu một số mã nguồn mà tôi đang làm việc. Tôi tìm thấy một tuyên bố đặc biệt mà ai đó đã mã hóa. Mã nguồn là một ứng dụng GUI với giao diện QML và sử dụng QT 4.7.x.Lớp dựa trên QObject có kết nối xếp hàng với chính nó
Đoạn mã dưới đây thuộc về logic ứng dụng cốt lõi.
// connect signal-slots for decoupling
QObject::connect (this, SIGNAL(setCurrentTaskSignal(int)), this,
SLOT(SetCurrentTaskSlot(int)), Qt::QueuedConnection);
Thật lạ khi đối tượng kết nối với chính nó thông qua kết nối được xếp hàng đợi về cơ bản có nghĩa là đối tượng có thể "sống" trong các chủ đề khác nhau cùng một lúc?
Thoạt nhìn Nó không có ý nghĩa gì với tôi. Bất cứ ai có thể nghĩ ra bất kỳ lý do tại sao một kết nối như vậy sẽ là chính đáng hoặc cần thiết ?. Điều này thậm chí sẽ làm việc?
Làm cho tinh thần. Tôi vẫn đang xem xét những thứ xung quanh mã. Vì vậy, tôi sẽ trở lại một khi nó rõ ràng những gì đang xảy ra. –
Vì vậy, có vẻ như một tín hiệu thay đổi nhiệm vụ được phát ra trong khi thực hiện một số tính toán và rằng "thay đổi" không nên xảy ra ngay lập tức, nhưng sau khi dòng chảy hiện tại được thực hiện và xử lý sự kiện tiếp tục. –