![]() |
1
3
如果您将此作为练习(仅使用现成的记录器不是一个选项),您可以尝试生产商/消费者系统。
|
![]() |
2
3
SRY,但您不能重新发明车轮:
|
![]() |
3
1
好的,简单地说,您需要创建一个线程安全静态类。下面是一些代码片段,一个从任何线程调用的委托,它指向正确的线程,然后该线程调用writeToFile函数。 当您启动要登录的应用程序时,请传递下面的内容,其中log file是日志文件的文件名和路径。
然后您要将它放入静态日志类中。向导位是threadSafeAndEntry函数,这将确保您在正确的线程中写入代码行。
最后写一行…
|
![]() |
4
0
在这种情况下,您所拥有的是一个典型的生产者-消费者场景-许多线程产生日志条目,一个线程将它们写出到一个文件中。MSDN有一个 article with sample code for this scenario . |
![]() |
5
0
对于初学者,日志机制通常应避免抛出异常。日志记录机制经常是错误被写入的地方,所以当它们也开始出错时,情况会变得很糟糕。 我会调查 BackgroundWorker 类,因为它允许您分叉可以为您进行日志记录的线程。这样你的应用程序就不会减速,任何异常都会被忽略。 |
![]() |
J. Defenses · 节点JS,NeDB-如何使同步返回到父模块 6 年前 |
![]() |
StefanoN · Java多线程-按顺序只运行一次线程运行方法 6 年前 |
![]() |
merlin2011 · Android线程方法是否隐式同步? 6 年前 |
![]() |
ninbura · ffmpeg-时间码和分数帧速率(复制帧) 6 年前 |
![]() |
ninbura · 分段时音频缓慢去同步 6 年前 |