Error of List<T>.RemoveAt()

本文关键字:RemoveAt gt of lt Error List | 更新日期: 2023-09-27 18:03:23

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是字符串

的List

有时记录"why0",有时记录"why1",有时两者都记录,有时什么也不记录。

添加的元素不能为空。

为什么?

Error of List<T>.RemoveAt()

首先你需要使用

private readonly object lockObject = new object();
lock(lockObject)
{
}

你还需要在你要添加到列表的任何地方放置一个lock(lockObject)

希望在某些方面有所帮助。

如果你不想担心线程问题,你也可以看看ConcurrentBag。