定时执行 急 急

ZHOUGE 2010-10-18 05:37:24
有一方法,里面是从芯片中读取数据的,我希望每隔一秒就执行一次。 TIMER的话会使应用程序很卡,点其他按钮都要停顿好一段时间。 请教有没有别的方法可实现此功能。
...全文
124 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2010-10-18
  • 打赏
  • 举报
回复
线程操作new Thread((ThradStart)delegate
{
this.Invoke((EventHandler)delegate
{
});
}).Start();
yjl49 2010-10-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 win32fanex 的回复:]
控件栏里的Timer是基于windows消息机制的,而界面的运作正是依靠windows消息机制。你的IO频繁而费时,因此影响了界面运作。

首先试下system.threading.timer 或 system.timers.timer。MSDN上称这两种定时器是基于线程技术。所以从理论上进不会影响到界面运作。不过必需记往一点:在定时器函数中调用界面上控件方法,一定要通过Invoke或Begi……
[/Quote]
这个应该不错,用线程的话时间不会很准,尤其是CPU使用率很高的时候。
大狗狗 2010-10-18
  • 打赏
  • 举报
回复
控件栏里的Timer是基于windows消息机制的,而界面的运作正是依靠windows消息机制。你的IO频繁而费时,因此影响了界面运作。

首先试下system.threading.timer 或 system.timers.timer。MSDN上称这两种定时器是基于线程技术。所以从理论上进不会影响到界面运作。不过必需记往一点:在定时器函数中调用界面上控件方法,一定要通过Invoke或BeginInvoke。
-小蕾- 2010-10-18
  • 打赏
  • 举报
回复
外面用个循环读取,然后里面可以执行完一次就休眠一秒,然后再继续执行。
using System.Threading;
Thread.Sleep(1000);
wanby1982 2010-10-18
  • 打赏
  • 举报
回复
用多线程行不
gaincool 2010-10-18
  • 打赏
  • 举报
回复
try to using system.threading.timer or system.timers.timer

110,536

社区成员

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

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

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