如何使时间延迟在for循环

本文关键字:for 循环 时间延迟 何使 | 更新日期: 2023-09-27 18:06:37

我想在每个记录显示后2秒延迟显示windows形式的多条记录。我正在尝试Thread.Sleep(2000),但它不起作用。我在写下面的代码

for (var j = 0; j < connectionGetRecord.DataSet.Tables["StudentTable"].Rows.Count; j++)
{
    labelName.Text = connectionGetRecord.DataSet.Tables["StudentTable"].Rows[j]["Name"].ToString();
    labelFatherName.Text = connectionGetRecord.DataSet.Tables["StudentTable"].Rows[j]["FatherName"].ToString();
    labelRollNumber.Text = connectionGetRecord.DataSet.Tables["StudentTable"].Rows[j]["RollNumber"].ToString();
    var image = (byte[])connectionGetRecord.DataSet.Tables["StudentTable"].Rows[j]["Image"];
    var stream = new MemoryStream();
    stream.Write(image, 0, image.Length);
    pictureBox1.Image = new Bitmap(stream);
    var classId = (int)connectionGetRecord.DataSet.Tables["StudentTable"].Rows[j]["ClassId"];
    command.CommandText = "Select ClassName From TBLCLasses where ClassId=@ClassId";
    command.Parameters.Clear();
    command.Parameters.AddWithValue("@ClassId", classId);
    connectionGetRecord.GetRecord("TBLClasses", command);
    labelClass.Text = connectionGetRecord.DataSet.Tables["TBLClasses"].Rows[0]["ClassName"].ToString();
    pictureBox1.Size = new Size(530, 540);
    //command.CommandText = "Update TblStudent set PCDT=@PCDT where StudentId=@StudentId";
    //command.Parameters.Clear();
    //command.Parameters.AddWithValue("@PCDT", DateTime.Now);
    //command.Parameters.AddWithValue("StudentId", textBoxComputerNUmber.Text);
    //command.ExecuteNonQuery();
    command.Dispose();
    connectionGetRecord.connection.Close();
    path = connectionGetRecord.DataSet.Tables["StudentTable"].Rows[j]["Path"].ToString();
    //Flash(labelName, 1000, Color.Black, 10);
    // Flash(labelClass, 1000, Color.Black, 10);
    player.SoundLocation = path;
    player.Play();
    Thread.Sleep(2000); 
}

我对司机id有多个记录,我想一个接一个地显示它们,每个记录之间显示2秒的时间间隔。问题与此代码我有是,我得到只显示数据集表的最后记录。我希望每条记录以2秒的时间间隔显示。

我还想在我的代码中为每个记录播放声音。每次录音也是2秒。有人能告诉我我做错了什么吗?

如何使时间延迟在for循环

由于SoundPlayer的Play()函数创建了一个单独的线程,如果你想等到当前记录结束后再播放下一个,你应该使用PlaySync()函数。