1
我堅持不能夠確定爲什麼運行下面的方法時,我的程序凍結:文件閱讀器凍結我的程序
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。
反正所有幫助將不勝感激:)
那麼,你有沒有嘗試過使用調試器? 「凍結」到底是什麼意思?如果你正在UI線程中完成所有這些,那麼你的UI將會凍結,直到循環結束 - 但是你是否說它實際上會永久凍結? – 2013-04-25 05:56:06
我只是試過調試器,它沒有在這個問題上進一步闡明。我認爲你的循環理論可能是正確的,因爲我的意思是凍結是UI變得沒有反應,而且它是在UI線程上,但是循環不應該花很長時間才能完成,因爲它只是一個幾行。我想我只是讀邏輯錯誤,程序卡在永久循環中,我不確定我在哪裏出錯了,雖然 – 2013-04-25 06:01:16