Thread.Sleep(10000) 调试起作用, 直接运行不起作用? private void Form1_Load(object sender, EventArgs e)
{
System.Timers.Timer t = new System.Timers.Timer();
t.Interval = ConvertToint(sss[2]);//int.Parse(sss[2]); t.Elapsed += new System.Timers.ElapsedEventHandler(jihuadata);
t.AutoReset = true;
t.Enabled = true;
}
private void jihuadata(object sender, System.Timers.ElapsedEventArgs e)
{ db lists = new db();
DataSet ss = new DataSet();
\\
.......
\\
String sql01 = "select a.checi,a.kaidian,a.chuqinshijian,a.jiche,a.sijigonghao,a.sijiming,a.fusijigonghao,a.fusijiming from z_jcyy_jihua a,z_jcyy_yuangong b where a.sijigonghao=b.gonghao and b.chejianid='" + sss[5] + "' and to_char(a.kaidian,'yyyy-mm-dd HH24:mmi:ss')>='" + RQ + " " + tt1 + "' and to_char(a.kaidian,'yyyy-mm-dd HH24:mi:ss')<='" + RQ + " " + tt + "' and to_char(a.chuqinshijian,'yyyy-mm-dd')='" + RQ + "' and a.sijigonghao is not null and a.sijigonghao not in (" + sjm + ") and a.cqddid='" + sss[0] + "' order by a.kaidian ";
ss = lists.Oraclesql(sql01); Control.CheckForIllegalCrossThreadCalls = false; if (ss.Tables[0].Rows.Count != 0)
{
Form1.PlayWav("tishi.wav");
foreach (DataRow row in ss.Tables[0].Rows)
{
if (neir == "")
{
neir = " 现在时刻 " + tt1.Substring(0,5) + " gg " + publicfunction.zfzh(row["sijigonghao"].ToString()) + " " + publicfunction.zfkg(row["sijiming"].ToString().Trim());
neir += sss[3];
tbspeech.Text = neir;
speech.Speak(tbspeech.Text, SpeechVoiceSpeakFlags.SVSFlagsAsync);
}
else
{
neir = "\r\n" + " ffff " + publicfunction.zfzh(row["sijigonghao"].ToString()) + " " + publicfunction.zfkg(row["sijiming"].ToString().Trim());
neir += sss[3];
tbspeech.Text = neir;
Thread.Sleep(ConvertToint(sss[4])); //毫秒
speech.Speak(tbspeech.Text, SpeechVoiceSpeakFlags.SVSFlagsAsync);
}
}
}
}
{
System.Timers.Timer t = new System.Timers.Timer();
t.Interval = ConvertToint(sss[2]);//int.Parse(sss[2]); t.Elapsed += new System.Timers.ElapsedEventHandler(jihuadata);
t.AutoReset = true;
t.Enabled = true;
}
private void jihuadata(object sender, System.Timers.ElapsedEventArgs e)
{ db lists = new db();
DataSet ss = new DataSet();
\\
.......
\\
String sql01 = "select a.checi,a.kaidian,a.chuqinshijian,a.jiche,a.sijigonghao,a.sijiming,a.fusijigonghao,a.fusijiming from z_jcyy_jihua a,z_jcyy_yuangong b where a.sijigonghao=b.gonghao and b.chejianid='" + sss[5] + "' and to_char(a.kaidian,'yyyy-mm-dd HH24:mmi:ss')>='" + RQ + " " + tt1 + "' and to_char(a.kaidian,'yyyy-mm-dd HH24:mi:ss')<='" + RQ + " " + tt + "' and to_char(a.chuqinshijian,'yyyy-mm-dd')='" + RQ + "' and a.sijigonghao is not null and a.sijigonghao not in (" + sjm + ") and a.cqddid='" + sss[0] + "' order by a.kaidian ";
ss = lists.Oraclesql(sql01); Control.CheckForIllegalCrossThreadCalls = false; if (ss.Tables[0].Rows.Count != 0)
{
Form1.PlayWav("tishi.wav");
foreach (DataRow row in ss.Tables[0].Rows)
{
if (neir == "")
{
neir = " 现在时刻 " + tt1.Substring(0,5) + " gg " + publicfunction.zfzh(row["sijigonghao"].ToString()) + " " + publicfunction.zfkg(row["sijiming"].ToString().Trim());
neir += sss[3];
tbspeech.Text = neir;
speech.Speak(tbspeech.Text, SpeechVoiceSpeakFlags.SVSFlagsAsync);
}
else
{
neir = "\r\n" + " ffff " + publicfunction.zfzh(row["sijigonghao"].ToString()) + " " + publicfunction.zfkg(row["sijiming"].ToString().Trim());
neir += sss[3];
tbspeech.Text = neir;
Thread.Sleep(ConvertToint(sss[4])); //毫秒
speech.Speak(tbspeech.Text, SpeechVoiceSpeakFlags.SVSFlagsAsync);
}
}
}
}
是执行过的。你可以通过写日志的方式跟踪一下
断点确实停了10秒 ;直接运行不设置断点, 却没有停10秒。
主线程怎样才能有效果? 代码怎么改?
不过,你的问题 你没描述清楚,Thread.Sleep 是会执行的
前后分别加句话 往log里写当前时间
加哪句呢?
Thread.Sleep(ConvertToint(sss[4]));
当前时间输出到日志
-------------------这样你就知道休眠了没有