gpt4 book ai didi

c# - EnterpriseLibrary 记录器错误 : Object synchronization method was called from an unsynchronized block of code

转载 作者:行者123 更新时间:2023-11-30 16:20:14 25 4
gpt4 key购买 nike

我在使用 MS Enterprise Library Logger 进行记录时开始遇到此错误。

日志记录机制的工作原理是将日志条目排队,然后使用计时器每 10 秒刷新一次条目。

有段时间好好的,今天开始出现这个错误:

代码行:

Logger.Write(list[i]);

错误信息:

Object synchronization method was called from an unsynchronized block of code.

堆栈跟踪:

at Microsoft.Practices.Unity.SynchronizedLifetimeManager.TryExit()

整个计时器 elsapsed 事件处理程序:

private void TimerElapsed(object sender, ElapsedEventArgs e)
{
// Lock and free free the queue quickly - write to an intermediate list.
var list = new List<LogEntry>();
lock (LogEntryQueueLock)
{
while (true)
{
if (_logEntryQueue.Count <= 0)
break;

//dequeue the LogEntry that will be written to the log
list.Add(_logEntryQueue.Dequeue());
}
}

// Flush the list in to the log
for (int i = 0; i < list.Count; i++)
{
ProcessEntry(list[i]); // Strip commas from the string
Logger.Write(list[i]); // <<<== ERRORS HERE
}

}

非常感谢您的任何建议!

[编辑]:我试图调用 Logger.Write direclty,没有计时器经过事件 - 同样的问题......

最佳答案

这看起来是一个存在的问题:http://unity.codeplex.com/workitem/7206 .

好消息是,这个问题应该会在 2.1.505.2 版本中得到解决,您可以在以下位置获取:http://nuget.org/packages/Unity/2.1.505.2 .

关于c# - EnterpriseLibrary 记录器错误 : Object synchronization method was called from an unsynchronized block of code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14451483/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com