目前我正准备将c#应用程序的日志记录开发到SQL服务器表中。
我有一个名为Logger
的指定类,它有一个静态方法writeToLog()
。
我只想调用那个静态函数而不阻塞调用线程。
如何在C#中实现干净和快速?
这些功能不会返回它们只是发射并忘记的任何内容。
谢谢你的建议
答案 0 :(得分:0)
有很多可用的日志库都有可能对性能有所了解。
如果你仍然需要自己开发一种轻量级解决方案,我会想到两种方法。
1。)创建一个运行日志记录功能的Task
,无需等待
2。)Log-Method将日志信息保存在使用后台线程写入SQL数据库的队列中。
我建议使用第二种方法,因为日志记录本身可以在同步函数调用中完成,而不会产生任务创建开销。
这种方法的另一个论点是可以保证日志消息的顺序。通过对每个单个消息使用Task,不定义执行顺序。
最后一个论点:将消息块写入SQL表可能更有效。通过使用队列,您可以在批量操作中编写消息。