【发布时间】:2011-07-12 22:52:06
【问题描述】:
我正在尝试为我正在研究的算法做出一些设计决策。我想我想使用信号和槽来实现观察者模式,但我不确定一些事情。
这是我正在研究的算法:
1.) Load tiles of an image from a large file
1a.) Copy the entire file to a new location
2.) Process the tiles as they are loaded
3.) If the copy has been created, copy the resulting data into the new file
所以我设想有一个类,它具有像 loadAllTiles() 这样的函数,它会发出信号告诉 processTile() 另一个图块已准备好进行处理,同时继续加载下一个图块。
processTile() 将执行一些计算,完成后,向 writeResults() 发出信号,表明一组新的结果数据已准备好写入。 writeResults() 将验证复制是否完成,并开始写入输出数据。
这听起来合理吗?有没有办法让 loadAllTiles() 加载到一个图块中,以某种方式将该数据传递给 processTile() 然后继续加载下一个图块?我在考虑可能设置一个列表来存储准备处理的图块,以及准备写入磁盘的结果图块的另一个列表。我想缺点是我必须以某种方式保持这些列表完好无损,这样多个线程就不会尝试从列表中添加/删除项目。
感谢您的任何见解。
【问题讨论】:
标签: c++ qt design-patterns