その2つでは、lock(myList)のほうが良いです。 .NET Framework開発者のブログで「(List<T>含むジェネリックコレクションクラスからは)直接アクセスできない(ICollectionへのキャストが必要な)ようにしたのはなぜか。SyncRootは同期処理付きのラッパー(クラス)を作るためのものだからだ。」と書かれています。 http://blogs.msdn.com/b/bclteam/archive/2005/03/15/396399.aspx > How does a flawed design for synchronized wrappers imply we should remove ICollection's SyncRoot property? > Remember that the SyncRoot property only existed to
![C#List<T>のロックのしかた - 複数のスレッドからList<T>のオブジェクトを操作するとき、ロック処理が必要になりますが、loc... - Yahoo!知恵袋](https://cdn-ak-scissors.b.st-hatena.com/image/square/1d07bee2b75b182ba712690f3a3464c29972e28b/height=288;version=1;width=512/https%3A%2F%2Fs.yimg.jp%2Fimages%2Fks%2Fclap%2Fimage%2Fogp%2Fogp.png)