C# 文件读取器冻结我的程序
运行以下方法时,我无法确定程序冻结的原因:C# 文件读取器冻结我的程序,c#,file,methods,datagridview,freeze,C#,File,Methods,Datagridview,Freeze,运行以下方法时,我无法确定程序冻结的原因: String fileName = "Drops.de"; StreamReader streamReader = new StreamReader(fileName); String npcName; string npcID; string itemID; string itemAmount; string itemRarity; str
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();
}
我怀疑它与“while”循环有关。然而,我很可能错了。我对编程相当陌生,所以这可能是显而易见的:p
无论如何,所有的帮助都将不胜感激:)当(npcName==button1.Text){?:-)当(npcName==button1.Text){?:-)退出这个循环时,你会退出这个循环吗?如果你在UI线程上执行所有这些操作,那么你的UI将冻结,直到循环完成-但你是说它实际上会永久冻结吗?我只是尝试了调试器,它没有进一步说明问题。我认为你的循环理论可能是正确的,因为我所说的冻结是UI变得无响应,是的它在UI线程上,但是循环应该不会花很长时间来完成,因为它只有几行。我想我只是读错了逻辑,程序被卡在了一个永久的循环中,我不确定我哪里出了错。好吧,你试过使用调试器吗?你说的“冻结”到底是什么意思?如果你在UI线程上执行所有这些操作,那么你的UI将冻结,直到循环完成-但你是说它实际上会永久冻结吗?我只是尝试了调试器,它没有进一步说明问题。我认为你的循环理论可能是正确的,因为我所说的冻结是UI变得无响应,是的它在UI线程上,但是循环应该不会花很长时间来完成,因为它只有几行。我想我只是读错了逻辑,程序被卡在了一个永久的循环中,我不确定我哪里出错了