Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 后台线程上的TextWriterTraceListener_C#_.net_System.diagnostics - Fatal编程技术网

C# 后台线程上的TextWriterTraceListener

C# 后台线程上的TextWriterTraceListener,c#,.net,system.diagnostics,C#,.net,System.diagnostics,我有一个第三方组件,它使用TraceSwitch功能,允许我输出一些关于内部情况的跟踪。不幸的是,在详细模式下运行这些开关,使用TextWriterTraceListener作为使用者(输出到文件)会使应用程序的速度过慢 立即写入跟踪数据并不重要,那么有没有办法将数据写入优先级较低的线程?也许是一项任务 编辑 经过进一步调查,似乎仅仅打开开关而不连接侦听器会导致速度减慢。我要联系一下组件供应商 不过,听到答案还是会很有趣。为TraceListener编写自己的扩展名。在扩展名中,将所有跟踪字符串

我有一个第三方组件,它使用TraceSwitch功能,允许我输出一些关于内部情况的跟踪。不幸的是,在详细模式下运行这些开关,使用TextWriterTraceListener作为使用者(输出到文件)会使应用程序的速度过慢

立即写入跟踪数据并不重要,那么有没有办法将数据写入优先级较低的线程?也许是一项任务

编辑

经过进一步调查,似乎仅仅打开开关而不连接侦听器会导致速度减慢。我要联系一下组件供应商


不过,听到答案还是会很有趣。

为TraceListener编写自己的扩展名。在扩展名中,将所有跟踪字符串放在一个列表中,当计数足够高时,将列表写入一个文件并清除列表以重新开始。刷新Dispose()上的列表

然后可以很容易地扩展到使用线程池将新任务排队以执行实际写入

这并不能保证您将提高性能。只有当您确定是IO使事情变慢时,它才会有所帮助