我使用wxwidgets
在窗口中进行了项目,然后我尝试运行它,但是我遇到了冻结和解冻功能的问题。
它适用于linux吗?还有其他选项来冻结窗口吗?
这是我的代码:
void *UpdateModeltreeThread::Entry()
{
m_PtrTree->Freeze();
m_PtrTree->ProcessUpdateModelTree();
m_PtrTree->Thaw();
return NULL;
}
注意:我正在使用wxThread运行
ProcessUpdateModelTree()
在这个函数中我将树项添加到 wxtreelistctrl 有多个treeitems,所以我使用冻结和解冻,使用线程函数运行在后端在Windows中工作但不在Linux中工作
问题:在Freeze()&中间Thaw()它的调用绘制事件,因为它在treelistctrl绘制事件中崩溃,但是这个东西不是在窗口中讨厌
答案 0 :(得分:1)
你绝对无法从工作线程中调用GUI方法,例如Freeze()
和Thaw()
,就像你在这里做的那样。你必须打电话给他们,或者更好的是,从主线程中使用更安全的wxWindowUpdateLocker。