提交 2aceebdf 编写于 作者: 丁劲犇's avatar 丁劲犇 😸

解决多线程操作消息的BUG

上级 3643d9de
......@@ -989,8 +989,10 @@ void taskProject::timerEvent(QTimerEvent * evt)
void taskProject::push_msg(QString smsg)
{
m_mtxMsg.lock();
m_bufferMsgs.push_back(QByteArray::fromStdString(smsg.toStdString()));
m_bufferMsgSources.push_back(QString("Project:"));
m_mtxMsg.unlock();
}
void taskProject::send_msg(QString smsgSource, QByteArrayList lst)
{
......@@ -1003,20 +1005,24 @@ void taskProject::send_msg(QString smsgSource, QByteArrayList lst)
last_ck = curr_ck;
const int szMsgs = lst.size();
m_mtxMsg.lock();
for(int i=0;i<szMsgs;++i)
m_bufferMsgSources.push_back(smsgSource);
m_bufferMsgs.append(lst);
m_mtxMsg.unlock();
if (keep==false)
flush_msg();
}
void taskProject::flush_msg()
{
m_mtxMsg.lock();
if (m_bufferMsgs.size())
{
emit sig_message(m_bufferMsgSources,m_bufferMsgs);
m_bufferMsgSources.clear();
m_bufferMsgs.clear();
}
m_mtxMsg.unlock();
}
......@@ -16,6 +16,7 @@
#include <QVariant>
#include <QByteArrayList>
#include <functional>
#include <QMutex>
class taskCell;
class taskNode;
/*!
......@@ -167,6 +168,7 @@ protected:
int m_nTimerID = -1;
QByteArrayList m_bufferMsgs;
QStringList m_bufferMsgSources;
QMutex m_mtxMsg;
void timerEvent(QTimerEvent * evt) override;
void push_msg(QString smsg);
void send_msg(QString smsgSource, QByteArrayList lst);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册