我称服务方法为

ThreadPool.QueueUserWorkItem(o => service.Method(arg1, arg2));

服务有对象'loggingService',我正在使用Spring.Net

private readonly ILoggingService loggingService = ObjectBuilder.GetObjectByName("LoggingService");

“ LoggingService”类为单例。它将日志信息写入log.txt。

当我尝试在此服务方法中调用loggingService.Info(“ test”)时,出现异常:文件正在由另一个进程占用。

如何访问loggingService?

最佳答案

您的单例显然是每个线程的。
您将需要某种在线程之间传递LoggingService的方法。

例如,您可以在原始线程中设置service.loggingService

或者,您可以配置Spring.Net使其成为非线程本地单例。

请注意,您的LoggingService必须是线程安全的,否则在运行时会出现奇怪的错误。

10-08 19:20