If I uncomment this line of code in a project of mine, and comment out the one after it, occasionally I'll get the exception & stack trace:

System.InvalidOperationException: Operation is not valid due to the current state of the object
  at System.IO.StreamWriter.CheckState () [0x00000] in <filename unknown>:0 
  at System.IO.StreamWriter.WriteLineAsync (System.String value) [0x00000] in <filename unknown>:0 
  at System.IO.SynchronizedWriter.WriteLineAsync (System.String value) [0x00000] in <filename unknown>:0 
  at Gerty.Service+<PullJob>c__async1.MoveNext () [0x00000] in <filename unknown>:0 
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x00000] in <filename unknown>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.GetResult () [0x00000] in <filename unknown>:0 
  at Gerty.Service+<Work>c__async0.MoveNext () [0x00000] in <filename unknown>:0 

I guess what's confusing me is that I'm getting this exception despite awaiting the statement.

有帮助吗?

解决方案

As things go, using Console.Out for debug information is eventually going to interfere with your program.

As of this posting, I feel that NLog is the best option for logging. Especially in asynchronous applications due to their non-blocking API and very simple configuration.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top