我称服务方法为 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必须是线程安全的,否则在运行时会出现奇怪的错误。