我试着做了简单的暴力算法。它工作正常。但我正在看这个视频
http://www.youtube.com/watch?v=v2xwficgRYk&feature=relmfu
(时间 10:30)正如您在 textbox2 中看到的那样,可能性发生了变化。但是在我的程序中。我创建了 1323 作为密码,然后当我单击 brute 时,我等了 5 秒,在 textbox2 中得到 99999,在 textbox3 中得到 1323。为什么我不能像在视频中那样看到 textbox2 中的数字流?
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int a, b;
private void button1_Click(object sender, EventArgs e)
{
a = Convert.ToInt16(textBox1.Text);
}
private void button2_Click_1(object sender, EventArgs e)
{
for (int i = 0; i < 100000; i++)
{
textBox2.Text = "" + i;
if (a == i) textBox3.Text = "" + i;
}
}
}
最佳答案
那是因为视频中的程序在单独的线程中运行暴力循环。
在您的程序中,循环在主线程中运行,因此只要它在运行,就没有线程在监视所有用户界面更新发生的消息泵。
每当文本框的 Text
属性发生变化时,消息队列中就会有一条消息丢弃,提示文本框需要重新绘制以显示值,但主线程正忙于运行循环并且在循环完成之前不会对消息进行操作。
关于c# - 蛮力- c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12923007/