两个定时器timer1,timer2,按照各自特定的时间运行

asp9988 2009-09-14 01:47:55
两个定时器timer1,timer2,按照各自特定的时间运行
如果在同一时间的时候,就只会其中一个定义器执行,另一个不执行,请教怎么样才能让两个一起执行
不受 同一时间限制呢?

...全文
903 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
线程原则上时彼此切换执行的,可能同时进行。
德意志军工 2009-09-14
  • 打赏
  • 举报
回复
看不懂!!
一个timer占用一个线程,彼此好像没什么关系吧!!
请教!!请教!!
德意志军工 2009-09-14
  • 打赏
  • 举报
回复
看不懂!!
一个timer占用一个线程,彼此好像没什么关系吧!!
请教!!请教!!
asp9988 2009-09-14
  • 打赏
  • 举报
回复
timer1和timer2相差比如说10毫秒到100毫秒都可以接受的
asp9988 2009-09-14
  • 打赏
  • 举报
回复
timer和timer2相差比如说10毫秒到100毫秒都可以接受的
asp9988 2009-09-14
  • 打赏
  • 举报
回复
我的机器是单cpu的,在运行过程timer1和timer2在同一时间运行机会很大,也很多,如果timer1运行瞬间好不好存储起来来放到虚拟存诸器中,然后从虚拟存诸器调出执行,这时候自动停掉timer1执行timer2,依次这样方式执行呢?
ncjcz 2009-09-14
  • 打赏
  • 举报
回复
如果你的机器是单CPU的话,那肯定是不会同时执行的
但是,通过时间片调度,从我们的角度去看,应该是可以同时执行的。

你该不会是单步调试,所以看不到同时执行吧?
asp9988 2009-09-14
  • 打赏
  • 举报
回复
在这里的,忘了一个说明
每次的timer的时间都会自动改变的,都会有不同的值,两个timer定时器在同一时间运行的机会比较多。
asp9988 2009-09-14
  • 打赏
  • 举报
回复
在这里的,忘了一个说明
每次的timer的时间都会改会改变,都会有不同的值的,两个timer定时器,时间同时运行的机会比较多。
asp9988 2009-09-14
  • 打赏
  • 举报
回复
多个Timer是不会同时运行的,只要有一个Timer过程在执行,同一线程中的其它Timer都会等待。

Timer使用独立的线程:怎么使用呢?
LutzMark 2009-09-14
  • 打赏
  • 举报
回复
    public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{


Timer timer = new Timer();
timer.Tick += new EventHandler(timer_Tick);
timer.Interval = 1;

Timer timer2 = new Timer();
timer2.Tick += new EventHandler(timer2_Tick);
timer2.Interval = 1;
timer.Start();
timer2.Start();
}

void timer_Tick(object sender, EventArgs e)
{

textBox1.Text = DateTime.Now.ToString();
}
void timer2_Tick(object sender, EventArgs e)
{
this.Text = DateTime.Now.ToString();
}
}
}
LutzMark 2009-09-14
  • 打赏
  • 举报
回复
Timer使用独立的线程,可以2个或多个同时工作的
防止对象的并发访问就加个锁
mozhaodi 2009-09-14
  • 打赏
  • 举报
回复
那就在每个定时器里写两个要执行的代码,然后加个判断,如果两个定时器是同一时间了,就都执行,不是同一时间就只执行自己的
SDJL 2009-09-14
  • 打赏
  • 举报
回复
怎么会呢? 你试一下这样 当前时间减去上次执行时间大于需要等待的时间 那么就执行 这样就保险了
asp9988 2009-09-14
  • 打赏
  • 举报
回复
已经使用了两个定时器
关键问题是,两个在同时启动后,在同时执行时候,就只会有一个执行的。
我想要的是,两个执行不受影响,怎么防止冲突呢?有什么好的办法吗?
asp9988 2009-09-14
  • 打赏
  • 举报
回复
自已顶
BitCoffee 2009-09-14
  • 打赏
  • 举报
回复
那就用一个timer控件,设置好时间,只判断执行时间,然后开启后台线程执行方法.

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧