Надеюсь, я правильно описал проблему.
В следующем коде drive.IsReady
требуется некоторое время для завершения.До этого есть команда на печать текста «Сканирование дисков ...» в текстовом поле.Текст появляется после завершения foreach()
.
Почему это происходит и как я могу уведомить пользователя до выполнения долгосрочной задачи?
public Form1()
{
InitializeComponent();
button1.Click += new System.EventHandler(this.Button1_Click);
}
private void Button1_Click(object sender, EventArgs e)
{
richTextBox1.Text = "Scanning drives, please wait...";
PopulateComboBox();
}
void PopulateComboBox()
{
System.IO.DriveInfo[] drives = System.IO.DriveInfo.GetDrives();
foreach (System.IO.DriveInfo drive in drives)
{
if (drive.IsReady)
{
comboBox1.Items.Add(drive.Name + drive.VolumeLabel);
}
else
{
comboBox1.Items.Add(drive.Name);
}
}
}