- PR -

Console.WriteLineでスレッド競合

1
投稿者投稿内容
やんたん
ベテラン
会議室デビュー日: 2003/08/18
投稿数: 63
投稿日時: 2005-02-18 13:52
C#でWebサービスを構築しており、標記の件で困っております。
作成したWebサービスにデバックコードを消し忘れており処理中に
Console.WriteLine("Start")というコードが残っていました。
特に問題は無いと思っていたのですが、実際にそのWebサービスを利用していると
Console.WriteLineの部分で以下の様なエラーが発生してしまいました。

System.IndexOutOfRangeException: メモリをコピー中に I/O レース条件が見つかりました。既定で、I/O パッケージは競合状態ではありません。マルチスレッド アプリケーションでは、ストリームには、たとえば TextReader または TextWriter の Synchronized メソッドによって返されるスレッドセーフ ラッパーなどのような方法でアクセスしなければなりません。この条件は StreamWriter および StreamReader などのクラスにも適用されます。
at System.Buffer.InternalBlockCopy(Array src, Int32 srcOffset, Array dst, Int32 dstOffset, Int32 count)
at System.IO.StreamWriter.Write(Char[] buffer, Int32 index, Int32 count)
at System.IO.TextWriter.WriteLine(String value)
at System.IO.SyncTextWriter.WriteLine(String value)
           :

しかし、現在上記エラーは1度しか発生しておらず、意図的に発生させようとしても
発生させることができません。

上記エラーがどのような時に起こるか原因を知りたいのですが
ご存知でしたら教えていただけませんでしょうか。
中博俊
ベテラン
会議室デビュー日: 2004/10/17
投稿数: 91
お住まい・勤務地: 大阪市
投稿日時: 2005-02-18 14:14
http://www.gdncom.jp/general/bbs/ShowPost.aspx?PostID=25331
_________________
中博俊 MSMVP Visual Studio C# Since 2004/04-2005/03, MCP
http://naka.wankuma.com/
http://blogs.wankuma.com/naka/
naka@wankuma.com
1

スキルアップ/キャリアアップ(JOB@IT)