标签: timer

HPET可以在Windows中直接访问吗?

我想将高性能事件计时器(HPET)用于分析工具,以便快速进行高精度测量.timeGetTime在1ms时没有提供足够的分辨率,而QueryPerformanceCounter每次读取的速度比我想要的慢得多.我在研究这个问题时遇到了HPET,但我看不到任何关于如何实现它的样本.

那么我可以直接使用它(组装很好),还是我必须依赖Win32 API中内置的多媒体/高性能计时工具?

windows winapi timer

11
推荐指数
1
解决办法
6456
查看次数

在asp.net中使用System.Timers.Timer

我在asp.net网站上使用以下代码.

在应用程序init上,我调用一次InitializeTimer().

代码的目标是每小时运行一次DoWork()(每小时1次).

我还希望代码在每个循环的不同时间执行,所以我添加了随机部分.

我得到的结果是werid,我找不到解释为什么会发生.

代码在2小时后执行该功能,然后在2小时后再执行,然后在3小时后,然后在2小时后再执行2小时.****

谁能解释一下原因?

using System.Timers;
....
private static random = new Random();
....
public static void InitializeTimer()
{
    tTimer = new Timer();
    tTimer.AutoReset = true;
    tTimer.Interval = TimeSpan.FromHours(1.0).TotalMilliseconds;
    tTimer.Elapsed += new ElapsedEventHandler(ClassName1.tMailer_Elapsed);
    tTimer.Start();
}

private static void tTimer_Elapsed(object sender, ElapsedEventArgs e)
{
    tTimer.Interval += random.Next(-5, 5);

    DoWork();
}
Run Code Online (Sandbox Code Playgroud)

更新:

  1. 请不要发布"使用Windows服务"或"预定任务".我的问题是以下代码我不是在寻找更好的选择.此外,在此测试(10小时),网站流量很大,iis池没有重启!

  2. 基于以下MSDN:(http://msdn.microsoft.com/en-us/library/system.timers.timer.interval.aspx)

如果在定时器启动后设置了间隔,则重置计数.例如,如果将间隔设置为5秒,然后将Enabled属性设置为true,则计数将在Enabled设置时开始.如果在计数为3秒时将间隔重置为10秒,则在Enabled设置为true后,Elapsed事件将首次提升13秒.

是否有可能重新设置已用功能的间隔是导致问题的原因?

这意味着当调用tTimer_Elapsed函数时,计数是1小时(最小几毫秒),我的代码是"tTimer.Interval + = random.Next(-5,5);" 正在向Interval添加另一个小时?

.net c# asp.net timer

11
推荐指数
2
解决办法
2万
查看次数

计时器是否创建新线程?

        timer.Interval = 5000;
        timer.Tick += new EventHandler(timer_Tick);
        timer.Start();
Run Code Online (Sandbox Code Playgroud)

"timer_Tick"方法是在新线程中启动还是仍然在创建它的线程中?

c# multithreading timer

11
推荐指数
2
解决办法
7960
查看次数

setTimeLimit如何在R中工作?

我想setTimeLimit()在R中掌握并且我的经验导致了几个相关的问题,所以也许根本问题是:这是如何真正起作用的?(我一直在寻找evalWithTimeout()R.utils,以及,它可能适合我的目的稍微好一点,但它是建立在此功能).

以下是我想弄清楚的关键事项:

  1. 它如何监控经过的时间?即它似乎插入流控制,所以它是如何做到的?能够拥有"后台"流程很酷,可用于报告状态,检查点等.

  2. 我可以确定触发前剩余的时间吗?我意识到我可以将它包装起来并在某处保存在调用点(即输出proc.time())附近消耗的已用时间和CPU时间.但是,这个功能已经在某处存储了这些功能,我想知道在哪里,或者至少知道如何确定剩余的时间.

  3. 如果R控制台空闲,是否可以做一些有用的事情?能够监控elapsed.time()并且cpu.time()非常有用.我希望能够监视R何时处于空闲状态,但似乎需要修改它需要提交或完成命令.而且,仅输出错误不会触发后续操作.(也许我需要更多关注evalWithTimeout.)

  4. 帮助信息表明它可以适用于C或Fortran,但不提供示例.有关如何做到这一点的任何建议?

r timer

11
推荐指数
1
解决办法
1401
查看次数

DispatcherTimer应用间隔并立即执行

基本上当我们应用一些间隔即5秒时我们必须等待它.

是否可以立即应用间隔和执行定时器,不等待5秒?(我的意思是间隔时间).

任何线索?

谢谢!!

public partial class MainWindow : Window
    {
        DispatcherTimer timer = new DispatcherTimer();

        public MainWindow()
        {
            InitializeComponent();

            timer.Tick += new EventHandler(timer_Tick);
            this.Loaded += new RoutedEventHandler(MainWindow_Loaded);
        }

        void timer_Tick(object sender, EventArgs e)
        {
            MessageBox.Show("!!!");
        }

        void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            timer.Interval = new TimeSpan(0, 0, 5);
            timer.Start();
        }
    }
Run Code Online (Sandbox Code Playgroud)

.net c# timer

11
推荐指数
3
解决办法
9701
查看次数

定时器在待机模式下会发生什么?

我正在使用Timer from Timers命名空间.当PC进入睡眠状态或休眠状态时,计时器会发生什么?

我的计时器设置为6小时延迟.

在这些情况下会发生什么.

1)定时器从0小时开始,立即进入休眠/休眠状态.然后PC在第5小时醒来.我的计时器会在接下来的1小时后或接下来的6小时后点火吗?

2)定时器从0小时开始,立即进入睡眠/休眠状态.然后PC在第7小时醒来.一旦PC唤醒,我的计时器会立即开机吗?或者它会"错过"一次并在接下来的5小时内开火?从PC唤醒时间或之前的"错过"事件开始计算直到下一个事件?

.net c# sleep timer

11
推荐指数
1
解决办法
2330
查看次数

如何制作一个C#计时器来触发主线程中的事件?

简而言之,我需要.Net中的精确计时器 - 精确到毫秒 - 这意味着,如果我告诉它在10ms通过时发射事件,它必须这样做,+ -1ms.内置的.Net Timer类似乎具有+ -16ms的精度,这对我的应用来说是不可接受的.

我发现这篇文章http://www.codeproject.com/Articles/98346/Microsecond-and-Millisecond-NET-Timer,它提供了一个完全符合我需要的计时器代码(甚至更多 - 具有精确度,以微秒为单位) .

但问题是,OnTimer等效似乎是在另一个线程中执行的.所以,如果我添加一些代码,请说:

label1.Text = "Hello World";
Run Code Online (Sandbox Code Playgroud)

我会得到一个例外,因此我必须像这样写它:

Invoke( new MethodInvoker(() =>{label1.Text = "Hello World";}));
Run Code Online (Sandbox Code Playgroud)

根据我的理解,这是因为OnTimer事件是从计时器的线程触发的 - 时间过去直到有足够的时间超过Interval,然后触发下一个OnTimer事件..Net Timer没有这样的问题 - 在.Net Timer的OnTimer中,我可以自由地修改控件的成员.

问题:我应该更改什么,以便我的计时器将在主线程中运行它的OnTimer事件?添加"Invoke"是唯一的选择吗?

c# timer

11
推荐指数
1
解决办法
1万
查看次数

Java - Timer.cancel()v/s TimerTask.cancel()

在我的Android应用程序中,我运行一个计时器并在其他一些事件上取消它:

  class MyTimerTask extends TimerTask {
       override boolean cancel() {
         ...
       }

       override void run() {
         ...
       }
  }

  ...
  Timer t = new Timer();
  t.schedule(new MyTimerTask(),...)
  ...
  t.cancel();
Run Code Online (Sandbox Code Playgroud)

我期待t.cancel()能够自动调用MyTimerTaskcancel()方法.但是从不调用该方法.

我想知道这两种方法之间究竟有什么不同,以及为什么第二种方法不能自动调用.

java android timer timertask

11
推荐指数
1
解决办法
9151
查看次数

如何实现SpriteKit计时器?

我目前正在尝试为我的精灵套件游戏实现一个计时器,但我没有让它工作.计时器的初始值始终保持不变.

我假设我需要以某种方式/某处更新标签,但我不知道如何和在哪里:?我不明白这一点.有任何想法吗?

这是我的GameScene类中的代码

    let levelTimerLabel = SKLabelNode(fontNamed: "Chalkduster")
var levelTimerValue: Int  = 500

var levelTimer = NSTimer()

func startLevelTimer() {

    levelTimerLabel.fontColor = SKColor.blackColor()
    levelTimerLabel.fontSize = 40
    levelTimerLabel.position = CGPoint(x: size.width/2, y: size.height/2 + 350)
    addChild(levelTimerLabel)

    levelTimer = NSTimer.scheduledTimerWithTimeInterval(0.5, target: self, selector: Selector("levelCountdown"), userInfo: nil, repeats: true)

    levelTimerLabel.text = String(levelTimerValue)

}

func levelCountdown(){

    levelTimerValue--

}
Run Code Online (Sandbox Code Playgroud)

timer sprite-kit swift

11
推荐指数
1
解决办法
4483
查看次数

反应原生显示当前时间并实时更新秒数

我想在响应原生应用程序(如时钟)中显示当前时间(MM/DD/YY hh:mm:ss),并且每秒都获得更新,我尝试使用新的Date()并将其设置为状态,但是时间不要除非我刷新页面,否则不会更新.我也尝试在render()中使用setInterval函数,它确实有更新,但它对CPU来说很昂贵.有没有一个很好的方法来实现这个功能?

state = {
    curTime: null,
}
render(){
    setInterval(function(){this.setState({curTime: new  Date().toLocaleString()});}.bind(this), 1000);
    return (
        <View>
            <Text style={headerStyle.marginBottom15}>Date: {this.state.curTime}</Text>
        </View>
    );
}
Run Code Online (Sandbox Code Playgroud)

timer clock reactjs react-native

11
推荐指数
3
解决办法
4万
查看次数