一个函数内部分成三个主要的模块
{
//模块1
//这里想实现的是先暂停5秒钟再接着执行下面的语句//模块2//模块3
}模块1执行完后,我想用C#去实现每隔一秒钟执行一次输出,一个执行5秒,5秒过后再执行下面的语句。我用Thread.Sleep(5000)//也就是说不用输出也可以,但需要5秒过后再执行下面的语句。然后发现整个窗口都假死了,所以想问下大家应该怎样去解决这问题呢。Timer的话好像只能每隔一定的时间去执行一个函数,却停止不下来,而多线程的话又不是很熟悉。大家有什么想法吗? 谢谢。
{
//模块1
//这里想实现的是先暂停5秒钟再接着执行下面的语句//模块2//模块3
}模块1执行完后,我想用C#去实现每隔一秒钟执行一次输出,一个执行5秒,5秒过后再执行下面的语句。我用Thread.Sleep(5000)//也就是说不用输出也可以,但需要5秒过后再执行下面的语句。然后发现整个窗口都假死了,所以想问下大家应该怎样去解决这问题呢。Timer的话好像只能每隔一定的时间去执行一个函数,却停止不下来,而多线程的话又不是很熟悉。大家有什么想法吗? 谢谢。
{
Thread.Sleep(5000);
//非UI动作写在Dispatcher.Invoke外面
App.Current.Dispatcher.Invoke(new Action(() =>
{
//做你想做的UI动作
}));
})); //后台线程
thread.IsBackground = true; thread.Start();
我是用WPF实现的,先尝试一下。
{
DispatcherTimer timer = new DispatcherTimer();
//1秒输出
timer.Interval = TimeSpan.FromSeconds(1);
timer.Tick += (t, tic) =>
{
//
//输出代码
// Thread thread = new Thread((() =>
{
//等待5秒
Thread.Sleep(5000); //Model2 //Model3
})); //后台线程
thread.IsBackground = true; thread.Start();
}; timer.Start();
}