QT QStandItemModel 的多线程问题

用QStandItemModel构造了一棵树,由于树的生长过程涉及网络通讯,延迟较大,所以采用多线程同时生长,结果有时候会出现程序崩溃的问题。查看崩溃时的栈信息,只能确定是多线程出了问题,没有更多提示。经过一番搜寻,原来QStandItemModel不是thread safe的。增加一个Mutex锁,在model每次修改时加锁即可。
ps. 由于QStandItemModel在增加元素前后需要使用 beginInsertRows/endInsertRows,开始一直以为这里已经加了锁,根本没往这方面考虑,耽误不少时间。