标签: timer

STL优先级队列 - 删除项目

我想使用C++ STL priority_queue容器适配器实现计时器排队系统.

我的问题是我偶尔会取消一个计时器,但没有接口可以让我轻松删除priority_queue中不是顶级项目的项目.

有什么建议?.

谢谢您的帮助.

c++ stl timer priority-queue

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

android设置计时器上按钮的可见性

我有一个应用程序,在程序开始时显示免责声明.我希望按钮在一段时间内保持不可见,然后变得可见.我设置了一个睡眠5秒的线程,然后尝试使按钮可见.但是,当我执行代码时出现此错误:

08-02 21:34:07.868:ERROR/AndroidRuntime(1401):android.view.ViewRoot $ CalledFromWrongThreadException:只有创建视图层次结构的原始线程才能触及其视图.

如何计算5秒,然后使按钮可见?谢谢.

Thread splashTread = new Thread() {
           @Override
           public void run() {
            try {
                   int waited = 0;
                   while(_active && (!_ok2)) {
                       sleep(100);
                       if(_active) {
                           waited += 100;
                           if(waited >= _splashTime)
                           {
                            turnButtonOn();
                           }

                       }
                   }
               } catch(InterruptedException e) {
                   // do nothing
               } finally {
                   finish();
                   startActivity(new Intent("com.lba.mixer.Choose"));

               }
    };
    splashTread.start();


      public static void turnButtonOn() {
         okButton.setVisibility(View.VISIBLE);
      }
Run Code Online (Sandbox Code Playgroud)

multithreading android view timer button

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

设备处于休眠状态时可运行的Android计时器

我正在编写一个体育应用程序,需要跟踪季度/半/周期的流逝时间.经过的时间需要精确到秒.即使用户通过按下电源按钮明确地将设备置于睡眠模式,游戏时钟也需要继续运行.

我第一次尝试使用Handler.postDelayed()来触发每200ms的时钟滴答和WindowManager.LayoutParms.FLAG_KEEP_SCREEN_ON,以确保屏幕超时不会停止"时钟".但我很快了解到,这是可以通过按下电源按钮手动把睡觉的装置来规避这种方法.此外,postDelayed()方法正在经历一些时钟漂移,显然是在run()方法中花费的时间的结果.实际数字仍然是准确的,但不是对齐,例如,在用户容易理解的5秒边界上 - 所涉及的定时器开始漂移,导致一些可理解的用户混淆.

经过一番研究后,我找到了使用服务,java定时器,AlarmManagerPartialWakeLock来实现定时器的技术.服务本身不能解决与设备进入睡眠状态相关的问题.Java定时器(如服务)无法解决设备进入休眠状态的问题.AlarmManager似乎是一个很好的方法,但我担心这不适合使用AlarmManager(即报警之间的间隔非常短).使用PartialWakeLock也看起来很有希望,但它本身并没有解决时钟漂移问题,我遇到了.

我将尝试组合AlarmManager和PartialWakeLock.我们的想法是,AlarmManager将有助于对抗时钟漂移和PartialWakeLock,以帮助保持代码简单(手指交叉).我希望这种方法能够在节能,代码复杂性和用户期望之间取得合理的平衡.任何意见是极大的赞赏.

谢谢,

丰富

android timer clock reliability persistent

13
推荐指数
1
解决办法
7036
查看次数

从c#中的不同线程启动一个计时器

嗨我已经陷入了一些与计时器相关的问题.希望有人可以帮忙..

  1. 我有一个包含按钮的窗体
  2. 当我点击该按钮时,我启动参数化线程
Thread thread1 = new Thread(new ParameterizedThreadStart( execute2));
thread1.Start(externalFileParams);
Run Code Online (Sandbox Code Playgroud)
  1. 线程内的代码执行得很好
  2. 在这个线程的最后一行,我启动一个计时器

.

public void execute2(Object ob)
{
    if (ob is ExternalFileParams)
    {
        if (boolean_variable== true)
          executeMyMethod();//this also executes very well if condition is true
        else
        {
            timer1.enabled = true;
            timer1.start();
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

5但是没有触发计时器的tick事件

我正在研究VS2008 3.5框架.我已经从工具箱拖动计时器并将其设置Interval为300也试图设置Enabledtrue/false方法timer1_Tick(Object sender , EventArgs e)但是它没有被解雇

任何人都可以建议我做错了什么?

c# multithreading timer visual-studio-2008

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

为什么通过timeBeginPeriod增加定时器分辨率会影响功耗?

我目前正在用C#编写一个应用程序,我需要大约启动一个计时器.每5毫秒.从一些研究看来,最好的方法是p /调用timeBeginPeriod(...)来改变系统计时器的分辨率.它在我的示例代码中运行良好.

我在此条目中发现了一条关于在Larry Osterman的MSDN博客上使用此功能的有趣警告:

Adam:调用timeBeginPeriod也可以提高GetTickCount的准确性.

使用timeBeginPeriod一般是一个非常糟糕的想法 - 我们一直在积极地删除它在Windows中的所有用途,因为使用它会带来功耗的后果.

有更好的方法可以确保您的线程及时运行.

有没有人确切知道为什么会发生这种情况,或者那些"更好的方式"(在线程中未指定)可能是什么?我们谈论的额外功耗是多少?

c# winapi timer

13
推荐指数
2
解决办法
8698
查看次数

后台服务需要在服务器上发送GPS位置

我的Android应用程序有问题.我需要一个应用程序,每10分钟将后台GPS位置发送到服务器(这里我有WCF服务工作).应用程序即使关闭也需要发送数据.所以我创建了一个服务(用于测试目的),它在服务器上发送给我时间.但当我插入我的代码以获取我的服务中的GPS位置时,一切都失败了(意外停止).

我已经知道你需要放一些接收器或其他东西,但到目前为止还没有任何工作.如果有人能帮助我,我会很高兴.

  <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.biromatik.GPS"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="4" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:label="@string/app_name"
            android:name=".ETMGPSServiceActivity" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
    <application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:name=".MyApplication" >
    <service
        android:enabled="true"
        android:name=".MonitorService" >
    </service>
    <receiver
        android:enabled="true"
        android:name=".LocationReceiver" >
        <intent-filter >
            <action android:name="com.biromatik.intent.action.LOCATION" />
        </intent-filter>
    </receiver>
</application>


     <uses-permission android:name="android.permission.INTERNET"></uses-permission>
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.SEND_SMS"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />




</manifest>
Run Code Online (Sandbox Code Playgroud)

service gps android timer

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

Android中的HH:MM:SS格式的倒计时器

我正在尝试在android中开发一个倒数计时器.在这个例子中,我输入了一个分钟作为参数,在倒数计时器中显示.

问题是,当我输入分钟时,例如65,那么计数器将是65:00.我希望计数器显示1:05:00,即HH:MM:SS格式.

public class MainActivity extends Activity implements OnClickListener {

private Button buttonStartTime, buttonStopTime;
private EditText edtTimerValue;
private TextView textViewShowTime; // will show the time
private CountDownTimer countDownTimer; // built in android class
                                        // CountDownTimer
private long totalTimeCountInMilliseconds; // total count down time in
                                            // milliseconds
private long timeBlinkInMilliseconds; // start time of start blinking
private boolean blink; // controls the blinking .. on and off

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) …
Run Code Online (Sandbox Code Playgroud)

android timer milliseconds countdowntimer

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

Console.ReadKey与带有Timer的Console.ReadLine

以下代码是一个众所周知的示例,用于显示调试版本和发布版本之间的区别:

using System;
using System.Threading;

public static class Program
{
    public static void Main()
    {
        Timer t = new Timer(TimerCallback, null, 0, 2000);
        Console.ReadLine();
    }

    private static void TimerCallback(Object o)
    {
        Console.WriteLine("In TimerCallback: " + DateTime.Now);
        GC.Collect();
    }
}
Run Code Online (Sandbox Code Playgroud)

如果使用调试配置运行此命令,则计时器将每两秒输出当前时间.这GC.Collect没有任何影响,因为编译器人为地延长了Timer t变量的寿命.在发布配置中,计时器只执行一次.该GC.Collect遗嘱垃圾收集t变量,就是这样.

一切都像它应该的那样.奇怪的是,当您将Console.ReadLine行更改为Console.ReadKey时,两个配置每两秒运行一次计时器.

Console.ReadKey和Console.ReadLine有什么区别?我从文档中了解到Console.ReadKey阻塞了发出ReadKey方法的线程.但是GC.Collect仍然会发射..

为什么Timer t通过阻塞主线程来延长生命周期?

更新

使用.NET 3.5时,不会发生此行为!

c# console multithreading garbage-collection timer

13
推荐指数
1
解决办法
4278
查看次数

取消后,Android重新启动计时器

我的应用程序中有一个计时器,每隔15秒启动一次AsyncTask.

Timer timer = new Timer();

public void AsynchTaskTimer() {
    final Handler handler = new Handler();

    TimerTask timertask = new TimerTask() {
        @Override
        public void run() {
            handler.post(new Runnable() {
                public void run() {
                    try {
                        new updateGPSTask().execute();
                    } catch (Exception e) {
                        // TODO Auto-generated catch block
                    }
                }
            });
        }
    };
    timer.schedule(timertask, 0, 15000); // execute in every 15sec
}
Run Code Online (Sandbox Code Playgroud)

这是从该onCreate()方法启动的.

当我调用另一个活动时,我需要取消这个计时器,timer.cancel()onPause()在我的主要活动中使用我的方法.

现在,当我返回主要活动时,我需要重新启动计时器.我试图重新发起AsynchTaskTimer()onRestart()方法,但我得到一个java.lang.IllegalStateException: Timer was canceled. …

android timer android-asynctask

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

`boost asio`中`deadline_timer`和`waitable_timer`之间的区别

要在5秒内使计时器到期,
这两者之间是否存在实际差异?
对于这种情况,是否有人优先考虑(性能,资源等)?

[备选方案1] deadline_timer:

boost::asio::deadline_timer timer(io_service);
timer.expires_from_now(boost::posix_time::seconds(5));
Run Code Online (Sandbox Code Playgroud)

[备选方案2] waitable_timer(system_timersteady_timer):

boost::asio::system_timer timer(io_service);
timer.expires_from_now(std::chrono::seconds(5));
Run Code Online (Sandbox Code Playgroud)

PS:请专心比较deadline_timersystem_timer的,而不是system_timersteady_timer.

c++ boost timer boost-asio

13
推荐指数
2
解决办法
7972
查看次数