я застрял не в состоянии определить, почему моя программа зависает при запуске следующего метода:читателя файла замораживание моей программы
String fileName = "Drops.de";
StreamReader streamReader = new StreamReader(fileName);
String npcName;
string npcID;
string itemID;
string itemAmount;
string itemRarity;
string itemName;
while(!streamReader.EndOfStream){
string line = streamReader.ReadLine();
//start of block
if(line.StartsWith("[")){
npcName = line.TrimStart('[');
npcName = npcName.TrimEnd(']');
while(npcName == button1.Text){
while(!line.StartsWith("[/")){
line = streamReader.ReadLine();
String[] s = line.Split(' ');
npcID = (s[0]);
itemName = (s[1]);
itemID = (s[2]);
itemAmount = (s[3]);
itemRarity = (s[4]);
dataGridView1.Rows.Add(itemName, itemID, itemAmount, itemRarity);
/*
DataGridViewRow row = (DataGridViewRow)dataGridView1.Rows[0].Clone();
row.Cells[0].Value = itemName;
row.Cells[1].Value = itemID;
row.Cells[2].Value = itemAmount;
row.Cells[3].Value = itemRarity;
dataGridView1.Rows.Add(row);*/
dataGridView1.Refresh();
line = streamReader.ReadLine();
//MessageBox.Show(npcName);
}
}
}
}
streamReader.Close();
}
У меня есть подозрение, что что-то делать с «а» циклом. Однако я скорее всего ошибаюсь. Я довольно новичок в программировании, поэтому, вероятно, это нечто очевидное: p.
В любом случае вся помощь будет принята с благодарностью :)
Ну, вы пробовали использовать отладчик? Что именно вы подразумеваете под «замораживанием»? Если вы все это делаете в потоке пользовательского интерфейса, ваш пользовательский интерфейс * будет заморожен до тех пор, пока цикл не завершится, но вы говорите, что он фактически зависает навсегда? –
Я просто попробовал отладчик, он не проливает свет на проблему. Я думаю, что вы можете быть правы в своей теории циклов, поскольку то, что я подразумеваю под замораживанием, заключается в том, что пользовательский интерфейс становится невосприимчивым, и да, это в потоке пользовательского интерфейса, но цикл не должен занимать много времени, чтобы закончить, поскольку это был просто несколько строк. Я думаю, что я просто читаю логику неправильно, и программа застряла в постоянном цикле, я не уверен, где я ошибся, хотя –