SOLVED: код был удален через события каждые 10 мс, увеличивая время, необходимое для решения проблемы.Оператор C# false if
Я испытываю странный IndexOutOfRangeException
, который не должен происходить. Код внутри оператора if используется, хотя сам оператор является «ложным». Это известная проблема? Если да, то как я могу это исправить?
Ошибка возникает, когда счетчик (int
) равен 0, таким образом запрашивая element -1
от array
Огни.
Код:
if (counter > 0)
{
Console.WriteLine("counter-1 is groter dan 0");
int i = counter - 1;
Lights[i].setState(0);
}
Доступен ли счетчик из любых других потоков? –
Прошу прощения, но это невозможно.Если if-statement является ложным, код внутри оператора не будет выполнен, если у вас нет проблемы с несколькими потоками. Не могли бы вы разместить больше своего кода, чтобы мы могли видеть, что вы делаете? –
Изображение ошибки можно увидеть здесь: http://s13.postimg.org/a0frmariv/indexoutofrange.jpg Я также был очень удивлен, увидев это. Приложение является однопоточным приложением, а счетчик - частной переменной , – Simon