0
lock("data"){
    if(_requestList.Count>1 && _requestList[1]==null){
        Debug.Log("why0");
    }
    _requestList.RemoveAt(0);
    if(_requestList.Count > 0 && _requestList[0] == null){
        Debug.Log("why1");
    }
    doSomething ();
}

_requestList文字列のリストです

「why0」、「why1」、および両方を記録することもあれば、何も記録しないこともあります。

追加された要素が null になることはありません。

なぜ?

4

1 に答える 1

4

まず第一に、あなたは使用する必要があります

private readonly object lockObject = new object();

lock(lockObject)
{

}

lock(lockObject)また、リストに追加する場所をどこにでも配置する必要があります。

それがいくつかの点で役立つことを願っています。

スレッド化について心配したくない場合は、 ConcurrentBagを調べることもできます。

于 2013-03-12T09:16:57.673 に答える