После загрузки общих библиотек новый поток зависает - PullRequest
0 голосов
/ 15 февраля 2019

DESC:

Это касается моего предыдущего вопроса: виджет не отображается после загрузки lib

Я обнаружил, что не только виджет не отображается, код в этом новом созданпоток, кажется, не работает вообще.

когда загружена библиотека, я хочу, чтобы она запускала некоторую логику, связанную с Qt, в только что созданном потоке.но кажется, что новый поток зависает.

Вот мой код (совместно используемая библиотека):

class LibExecutor {
public:
    LibExecutor()
    {
        std::cout << "before thread create" << std::endl;

        std::thread t([]() {
            std::cout << "thread is running" << std::endl;
        });

        t.join();

        std::cout << "thread ended" << std::endl;
    }
};
static LibExecutor libExecutor;

Выходная строка в теле потока не отображается, когда приложение хоста загружает эту библиотеку, программуblocks.

также, взлом в стиле c с использованием dllMain также блокирует новый поток.:(, я знаю, создание потока в dllMain - это плохо, только тестирование.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...