Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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
Multithreading log4net AdoNetAppender线程安全吗?_Multithreading_Log4net - Fatal编程技术网

Multithreading log4net AdoNetAppender线程安全吗?

Multithreading log4net AdoNetAppender线程安全吗?,multithreading,log4net,Multithreading,Log4net,说明log4net是线程安全的: 问题:log4net线程安全吗 答:是的,log4net是线程安全的 但是,本手册规定: 实例成员不能保证线程安全 我猜log4net不是线程安全的。我使用这个类登录数据库,并不时手动刷新附加的数据。我看到有些记录是重复的 查看代码,在我看来基类BufferingAppenderSkeleton为flush()锁定对象,但是最终调用的函数SendFromBuffer()可以从其他位置无锁地调用(例如Append())。因此,该类似乎不是线程安全的 那么,我是否应

说明log4net是线程安全的:

问题:log4net线程安全吗

答:是的,log4net是线程安全的

但是,本手册规定:

实例成员不能保证线程安全

我猜log4net不是线程安全的。我使用这个类登录数据库,并不时手动刷新附加的数据。我看到有些记录是重复的

查看代码,在我看来基类
BufferingAppenderSkeleton
flush()
锁定对象,但是最终调用的函数
SendFromBuffer()
可以从其他位置无锁地调用(例如
Append()
)。因此,该类似乎不是线程安全的


那么,我是否应该断定该类不是线程安全的,但是log4net中的使用使其成为线程安全的?

您如何手动刷新数据,以及是否设置了缓冲区大小?