此代码在控制台应用程序中正常工作,但是当我在 Windows 窗体应用程序中使用它时,它不能正常工作。它永远不会停止,也不会产生任何输出。
我在这样的控制台应用程序中使用它并且它可以工作:
static void Main(string[] args)
{
Console.WriteLine("Enter your boolean query");
do{
string query = Console.ReadLine();
List<int> lst = ProcessQuery(query);
count = 0;
if (lst!=null)
{
foreach (int a in lst)
{
if (a == 1)
{
Console.WriteLine(documentContentList[count]);
}
count++;
}
}
else
{
Console.WriteLine("No search result found");
}
} while(1==1);
}
我尝试button_click
在 Windows 窗体应用程序中的方法上使用上述代码,但它不起作用。我认为有问题while(1==1)
- 有没有等价的?
这是我为按钮编写的方法:
private void button6_Click(object sender, EventArgs e)
{
if (t == null)
{
MessageBox.Show("Click on LoadFile Button,Please.");
return;
}
if (textBox4.Text == "")
{
MessageBox.Show("Enter your Boolean Query");
return;
}
listBox1.Items.Clear();
DateTime dt = DateTime.Now;
do{
List<int> lst = t.ProcessQuery(textBox4.Text);
count = 0;
if (lst != null)
{
foreach (int a in lst)
{
listBox1.Items.Add(t.documentContentList[count]);
}
count++;
}
else
{
listBox1.Items.Add("No Search Result Found");
}
label1.Text = "Search = " + listBox1.Items.Count + " items, " + DateTime.Now.Subtract(dt).TotalSeconds + " s";
} while (1==1);
}