繁体   English   中英

由于对象的当前状态,操作无效

[英]Operation is not valid due to the current state of the object

有时,在运行Mono .NET应用程序时(它似乎不依赖于输入数据,因为它不会发生变化),我遇到以下情况:当尝试从中使元素出队(非空时,我检查其计数)预先)队列,将引发异常:

未处理的异常:System.InvalidOperationException:由于对象在System.Collections.Generic.Queue 1[DBWorkItem].Peek ()[0x00000] at System.Collections.Generic.Queue 1 [DBWorkItem]的当前状态,操作无效在<...>中的DBProcessor.process(System.Object q)[0x0006b]处的.dequeue()[0x00000]

尽管我当然可以捕获此异常,但是该元素已出队并丢失了。 还有其他人也遇到过这种行为吗?

您是否有多个线程正在使用此队列? 当您检查计数时,它可能是非空的,但是当您尝试窥视该项目时,它可能为空。

如果您有一个简短但完整的程序来说明问题,我们可以肯定地说。 当然,这可能是Mono错误,尽管我的经验是系统框架通常比调用它们的代码更健壮。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM