如何使时间延迟在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秒。有人能告诉我我做错了什么吗?
由于SoundPlayer的Play()函数创建了一个单独的线程,如果你想等到当前记录结束后再播放下一个,你应该使用PlaySync()函数。