我遇到的问题是,我的处理速度比我处理必要的结果要快(错误纠正很慢)
我认为最好的方法是将流排队并在准备好后删除它的块。在将其放入队列之前,我会做一些非常快速的处理以确定块的大小。
当我尝试从队列中删除块时,所有关于它的大小的信息都已丢失,而q.get()只返回放在队列中的最后一个块的大小(不会是与原始块相同的大小)。这是一个问题,因为处理根据它们在比特流组块中的位置来剥离和移除数据的比特。因此,如果块较短,则删除错误的位,并且包含的信息将丢失。
那么如何使用q.get()来提取正确大小的项目'从队列?
这是我的简化代码(但没有用):
using (var db = new MyContext(ConnectionString))
{
var res = db.Device.Find(ID);
}
如果比特流遇到大小为5,4,3,2和1的块,结果如下:
- 如果输入速度很慢,那么队列中永远不会有多个项目,输出块大小为5,4,3,2,1。
- 如果输入速度很快以便队列增长,则输出块大小类似于3,1,1,1,1。
答案 0 :(得分:0)
发现错误!错误的命名约定是问题,我最终使用全局变量数据流而不是存储的数据流。遗憾