我不能在c#中使队列同步
本文关键字:队列 同步 不能 | 更新日期: 2023-09-27 18:01:30
我正在使用unity3d用c#创建一款游戏。这有点像"交通狂热"。我需要让排队的汽车进入队列,让它们在过马路时离开队列。当我排队时,它工作得很好。但是当我去队列的时候,我有这个异常:
"InvalidOperationException:由于对象的当前状态,操作无效"
下面是我的队列代码:
public Queue UD_queue;
public int score;
void Awake(){
InitQueues();
score = 0;
}
public void InitQueues(){
DU_queue = new Queue();
Debug.Log("queue initialized");
}
private Queue syncQ(Queue q){
Queue sync_q = Queue.Synchronized(q);
return sync_q;
}
public void DoEnqueue(GameObject go){
lock(DU_queue)
DU_queue.Enqueue(go);
}
public void DoDequeue(){
lock(DU_queue)
DU_queue.Dequeue();
score +=500;
}
在其他类中,我调用DoEnqueue()和DoDequeue()方法
谁能告诉我为什么锁(){}不起作用?如何使用ConcurrentQueue。你不需要再在上面使用任何锁了