我在做利用QT 一个二进制数据写入文件的程序,编程采用C++,主线程产生数据,通过signal1向外发送。由于数据需要保存在多个文件,并且要求实时性。所以现在希望根据设置的文件数量,依次向文件中写入signal1中的数据,来循环写入数据。每个文件由一个子线程child Thread来控制。child Thread线程对应的操作:头文件准备、写入数据、关闭文件三个过程。
具体流程,以两个子线程child Thread 1、child Thread 2写入两个文件为例。
首先child Thread 1、child Thread 2分别触发 头文件准备
1\ child Thread 1写入数据,如果child Thread 2未写头文件,触发child Thread 2准备头文件
2、child Thread 1写入数据完成,自动关闭文件,同时将数据传递给 child Thread 2写入数据,child threa1 关闭文件后,还要重新准备头文件
3、如此循环,知道数据写入完成
以上只是以两个子线程循环写文件为例,意味着我需要四个信号分别触发子线程的动作,child Thread 1准备头文件信号 、child Thread 1写入数据信号
child Thread 2准备头文件信号 、child Thread 2写入数据信号.并且连接对应子线程的槽函数。如果利用三个、四个子线程循环写文件,意味着需要更多的信号和更多的槽函数连接。这些是无法被知道的。
有没有一种方便的方法实现以上的流程,多谢指导