c++使用future卡主,而使用thread没问题

以下代码若在exe中是没问题的,若在dll中大部分情况是会卡住的,然而将future换成thread又没有问题了,不知道是什么情况。
class a
{
public:
a()

{ //若改为 thread 没问题
f = std::async(&a::fun, this); //t.start(&a::fun, this);
}
void fun()
{
std::cout << "开始\n";
}
~a()
{

f.get(); //导出函数aa,会在析构函数f.get()处卡主
//t.join()
}
private:
std::future f; //thread t;
};

        //此为dll导出函数
            void aa()
            {
                    static a aa;
            }

            //若不导出,直接使用类a,是没问题的,导出函数aa,会在析构函数f.get()处卡主
            //若将future改为thread又没有问题了,这是什么情况
            int main()
            {
                    aa();
            }

https://blog.csdn.net/u011726005/article/details/78266706

使用链接中的
do {
status = future.wait_for(std::chrono::seconds(1));
if (status == std::future_status::deferred) {
std::cout << "deffered" << std::endl;
} else if (status == std::future_status::timeout) {
std::cout << ".";
} else {
std::cout << "ready" << std::endl;
}

} while (status != std::future_status::ready);

作者:哲这这
来源:CSDN
原文:https://blog.csdn.net/u011726005/article/details/78266706
版权声明:本文为博主原创文章,转载请附上博文链接!

一直显示...................,超时中,