小编Jer*_*las的帖子

在 foreach 循环中抛出 IndexOutOfRangeException

我正在使用 Photon 服务器运行多人游戏,每 100 多场比赛,服务器停止响应输入——查看日志文件,我收到以下异常:

2013 年 7 月 30 日 12:31:24,918 [11] 错误 Lite.Room [(null)] - System.IndexOutOfRangeException:索引超出数组范围。在 C:\Program Files (x86)\Photon\Photon src-server\STSServer\STSLib\Engine.cs:line 130 中的 STSLib.Engine.handleInput(Hashtable input, Int32 playerId)

查看我的代码,我的引擎类的第 130 行是一个 foreach 循环:

foreach (Player p in players)
{
    Queue playerQueue = new Queue();
    returnTable.Add(p.playerId, playerQueue);       
}
Run Code Online (Sandbox Code Playgroud)

其中 player 是我用来代表(你猜对了!)游戏玩家的类,而玩家是一个 Players 数组。returntable,是我发送给客户端的其他数据的哈希表队列的哈希表,我只是用一个空队列实例化每个键。

在这种情况下,在游戏中断之前,foreach 循环被调用并多次工作——也就是说,在游戏过程中开始抛出这个异常。

谁能解释 foreach 循环如何抛出索引越界异常?

c# photon

3
推荐指数
1
解决办法
2153
查看次数

标签 统计

c# ×1

photon ×1