■No43400 (魔界の仮面弁士 さん) に返信 返信ありがとうございます。 > System.Threading.Monitor の誤記です。 > (.NET 1.x 当時、公式文書で System.Monitor と記述されていたものがありました) > > SyncLock と Monitor の比較について、こちらが参考になるかも。 > http://msdn.microsoft.com/en-us/magazine/cc163846.aspx > http://www.seosoft.net/weblog/dotnet/2005/05/monitorsynclock.html 貴重な情報ありがとうございます!!! System.Threading.Monitor.Enterと System.Threading.Monitor.ExitをSyncLockの代わりに使用してみたり、 オショウ 様に教わったReaderWriterLockを使用してみましたが、 どうしてもSystem.NullReferenceExceptionが消えません。 (デバッグで時間をかけながらトレースすると出ませんが、一気に流すと出ます。。。) これは、私のソースが根本的におかしいのかもしれません。 (クローズ処理後、受信メソッドでクローズ判定され再度クローズ処理が呼ばれますが、 そのためにロックをかけているはず…) もしかすると、スレッド違いのせいでしょうか? 最初にクローズ処理を行うのはボタンイベントのメインスレッドですが、 再度クローズ処理を呼ぶのは非同期(BeginReceive)スレッドからです。 いや、関係ないですよね… うう〜〜ん…自信ありません。 上記情報を眺めながら、もうちょっと悩んでみます。
- Child Tree -