我有以下按钮点击事件:
private void btnRun_Click(object sender, EventArgs e)
{
label1.Visible = true;
if (SelectDatabase())
{
if (string.IsNullOrEmpty(txtFolderAddress.Text))
MessageBox.Show("Please select a folder to begin the search.");
else
{
if (cbRecurse.Checked == false || Directory.GetDirectories(initialDirectory).Length == 0)
{
CheckSingleFolder();
}
else
{
CheckSingleFolder();
directoryRecurse(initialDirectory);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
实际上,它会执行一些检查,然后启动一些目录递归以查找特定文件.但是,直到目录被递归之后才会出现使标签可见的第一行代码?谁知道为什么会这样?
谢谢.
你正在UI线程中做所有事情,这是一个非常糟糕的主意 - UI不会更新,对事件做出反应等等,直到你完成.
您应该使用后台线程并使用进度更新UI等Control.BeginInvoke,或者使用a BackgroundWorker.
基本上,WinForms中有两个黄金法则(和WPF/Silverlight类似):
| 归档时间: |
|
| 查看次数: |
213 次 |
| 最近记录: |