DBa*_*DBa 5 .net c# linux mono
有时候,当运行Mono .NET应用程序时(它似乎不依赖于输入数据,因为它没有改变),我遇到以下情况:当尝试从a中取出一个元素时(非空,我检查它的计数)事先)队列,抛出异常:
未处理的异常:System.InvalidOperationException:由于System.Collections.Generic.Queue
1[DBWorkItem].Peek ()[0x00000] at System.Collections.Generic.Queue1 [DBWorkItem] .Dequeue()[0x00000]在DBProcessor.process(System.Object q)[0x0006b]处的对象的当前状态,操作无效.]在<...>
虽然我当然可以捕获这个异常,但该元素已经出现并且丢失了.还有其他人遇到过这种行为吗?
你有多个线程使用这个队列吗?当您检查计数时,它可能是非空的,但是当您尝试查看项目时它会为空.
如果您有一个简短但完整的程序来证明问题,我们可以肯定地说出来.当然,它可能是一个Mono bug,虽然我的经验是系统框架通常比调用它们的代码更健壮.