C# EventSourceException:操作系统没有可用的缓冲区
全文如下: EventSourceException:操作系统没有可用的缓冲区 系统(例如,事件速率过快) 由于递归,我调用这个方法大约一百万次。它没有停止,我只是在VS2013的输出调试窗口中得到异常文本。但是它非常慢C# EventSourceException:操作系统没有可用的缓冲区,c#,exception,roslyn,tpl-dataflow,microsoft.build,C#,Exception,Roslyn,Tpl Dataflow,Microsoft.build,全文如下: EventSourceException:操作系统没有可用的缓冲区 系统(例如,事件速率过快) 由于递归,我调用这个方法大约一百万次。它没有停止,我只是在VS2013的输出调试窗口中得到异常文本。但是它非常慢 private static IEnumerable<string> RecursiveFindServices(ISymbol sym, Solution sln) { List<string> list = new List<strin
private static IEnumerable<string> RecursiveFindServices(ISymbol sym, Solution sln)
{
List<string> list = new List<string>();
var callers = SymbolFinder.FindCallersAsync(sym, sln).Result; // this line may cause the EventSourceException (try not to call Async)
foreach(var caller in callers)
{
string name = GetMethodName(caller);
if (caller.CallingSymbol.ContainingType.Name.EndsWith("Test"))
continue;
if (recursiveList.Contains(name))
continue;
recursiveList.Add(name);
if (IsWebservice(caller))
list.Add(name);
else
list.AddRange(RecursiveFindServices(caller.CallingSymbol, sln));
}
return list;
}
任何ide如何加快代码速度或找到异常的根本原因都是有帮助的。
//谢谢:-)我们也面临这个例外!不确定是否相关,我的C:驱动器当时已满,在释放一些空间后,没有出现此异常。我遇到了此问题,同时我正在使用VS 2013开发渲染方法。我找到了一个解决方案,可以停止向控制台窗口发送垃圾邮件,并显示以下消息: 转到VS 2013选项菜单: 在德语中,这是: EXTRAS-->Optionen…-->调试-->Allgemein-->(标记)verwaltten Kmpatibilitäsmodus verwenden 用英语来说,这是: 工具-->选项-->调试-->常规-->(标记)使用托管兼容模式
这将停止该消息。您说过您多次调用它。你多久叫它一次,每秒100万次,或者尽可能快100万次,然后完成。。。ETC异常是EventSourceException-您的代码正在以过高的速率向源发送跟踪事件。这种异常发生在哪里?它的调用堆栈是什么?在哪里记录事件?顺便问一下,为什么要通过调用
.Result
而不是使用async/await
进行阻止?你这样简直是在浪费CPU周期。@Mike159,我尽可能快地称之为100万次。:-)@帕纳吉奥提斯卡纳沃斯:谢谢!我已经开始使用等待。。。我还尝试在VS2013中对所有CLR异常启用中断,但它只是使整个VS2013崩溃-(顺便问一下,如果您知道如何重现此问题,是否可以将其添加到?VS 2017会提示您,如果启用此功能,则“编辑并继续”将被禁用。在我的手机上为我工作,SD卡上几乎没有空间,只有50-100 MB。
Microsoft.Build.Conversion.Core.dll (File Version 14.0)
Microsoft.Build.dll (File Version 14.0)
Microsoft.Build.Engine.dll (File Version 14.0)
Microsoft.Build.Framework.dll (File Version 14.0)
Microsoft.Build.Tasks.Core.dll (File Version 14.0)
Microsoft.Build.Utilities.Core.dll (File Version 14.0)
System.Threading.Tasks.Dataflow.dll (File Version 4.5.24)