标签: timer

使用 Java Swing 制作动画精灵

有人可以告诉我如何减慢精灵的出现速度以创建更流畅的动画吗?当我运行代码时,它出现在 JPanel 中的最后一个(第 27 个)精灵。动画处理速度太快了!

有人告诉我有关 Swing Timer 的信息,但不幸的是我尝试了几次,但无法让代码运行良好:(

这是我到目前为止的代码:

package sprites;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Sprites extends JFrame {

public static void main(String[] args) {
    JFrame frm1 = new JFrame();
    frm1.setSize(400, 400);
    frm1.setLocationRelativeTo(null);
    frm1.setResizable(false);
    frm1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Painel1 pn1 = new Painel1();
    frm1.getContentPane().add(pn1);
    frm1.setVisible(true);
  }
}

class Painel1 extends JPanel {

    BufferedImage img;

    public Painel1() {
        setBackground(Color.yellow);
    try
    {
      img = ImageIO.read(new File("images/dummy.png"));
    }
    catch …
Run Code Online (Sandbox Code Playgroud)

java animation swing timer jpanel

-1
推荐指数
1
解决办法
7667
查看次数

在特定时间Swift每天调用一次函数

我有一个tableview,我想在每天的特定时间(用户输入一个选择器)清空它.以下是它主要使用的代码,但是让我们说用户在晚上7点打开应用程序,更新时间是晚上8点,数据不会被删除(这是正确的)但是当时间是在同一天晚上9点并且应用程序打开数据不会被删除(这是不正确的).我认为这与lastRefreshDate应用程序打开时更新的evreytime时间有关,必须等待24小时lastRefreshDate而不是等待userPickedHour.该应用程序应该像这样工作有一个设定的时间晚上7点.因此,应用程序应该在第二天晚上7点或晚上7点后删除数据,当用户打开应用程序时,如果用户在第二天晚上7点之前打开应用程序,则不应删除数据,

这是代码:

class RefreshManager: NSObject {

static let shared = RefreshManager()
private let defaults = UserDefaults.standard
private let defaultsKey = "lastRefresh"
private let calender = Calendar.current



func loadDataIfNeeded(completion: (Bool) -> Void) {

    if isRefreshRequired() {
        // load the data
        defaults.set(Date(), forKey: defaultsKey)
        print("xxxxxx")
        completion(true)
    } else {
        print("yyyyyy")
        completion(false)
    }
}

private func isRefreshRequired(userPickedHour: Int = 16) -> Bool {
    let SleepPickerdate = UserDefaults.standard.object(forKey: "SleepDate") as? Date
    let userPickedHour = Calendar.current.component(.hour, from: (SleepPickerdate)!)
    print(userPickedHour) …
Run Code Online (Sandbox Code Playgroud)

timer uitableview delete-row ios swift

-1
推荐指数
1
解决办法
1065
查看次数

定时器在 invalidate() 和 nil 之后继续工作

我有这个计时器:

class InstallationViewController: BaseViewController {

   var precentageTimer: Timer!
}
Run Code Online (Sandbox Code Playgroud)

在同一堂课中,我像这样启动计时器:

               self.precentageTimer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true, block: { (timer) in
                self.network.getClibrationPercentage(success: { (info, percent) in
                    self.isAnalysisCompleted(percent: percent)
                    self.precentageLbl.text = "\(percent)%"
                    self.instructionsLbl.text = info
                    self.precentageLbl.isHidden = false
                }, failure: { (error) in
                    print(error)
                })
            })
Run Code Online (Sandbox Code Playgroud)

我也有这样的方法来解除任务:

 func dissmissAllTasks() {
    NotificationCenter.default.removeObserver(self)
    self.setCalibrationEnableTimer?.invalidate()
    self.setCalibrationEnableTimer = nil
    self.snapShotTimer?.invalidate()
    self.snapShotTimer = nil
    self.precentageTimer?.invalidate()
    self.precentageTimer = nil
}
Run Code Online (Sandbox Code Playgroud)

当我像这样单步执行 viewWillDisappear 时就会发生这种情况:

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)
    dissmissAllTasks()
 }
Run Code Online (Sandbox Code Playgroud)

但当我去其他 VC 时,我可以看到这个计时器一直在持续。我检查了调用的 dissmissAllTask​​s() ,我可以看到计时器为零。

为什么计时器一直走?

timer nstimer ios swift

-1
推荐指数
1
解决办法
639
查看次数

以随机间隔运行函数 C#

我在构造函数中调用了下面这个函数:

 public void IntervalSC()
 {
     Random rnd = new Random();
     double interval = rnd.Next(2000, 6000);
     var SCTimer = new System.Timers.Timer();
     SCTimer.Elapsed += new ElapsedEventHandler(dashboardController.Screenshot);
     SCTimer.Interval = interval;
     SCTimer.Enabled = true;
 }
Run Code Online (Sandbox Code Playgroud)

我希望间隔dashboardController.Screenshot在 2000 到 6000 之间运行,但生成随机数后,它不会改变,并Screenshot以 生成的固定间隔继续运行该函数rnd。我知道这是因为IntervalSC()运行一次,所以间隔的随机数也只生成一次。因此,我正在寻找有关如何使这项工作dashboardController.Screenshot以随机间隔运行的建议。谢谢。

c# timer system.timers.timer

-1
推荐指数
1
解决办法
720
查看次数

定时器仅30分钟

我想设置一个计时器,例如我的产品在添加到购物车时应该只显示30分钟.我试过了 :-

var d = new Date();

var minute = d.getHours()+30;
Run Code Online (Sandbox Code Playgroud)

另外我想向用户显示剩余时间(倒计时)

我知道这是错的.我想用jQuery做到这一点.我是jquery的新手,请帮助我

提前致谢.

jquery timer

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

定时器被中断

我在Windows窗体应用程序中的Timer有问题.需要Timer记录归档时间的归档程序.然而有什么东西打断了计时器?

我怀疑是流.关于什么可能导致计时器中断的任何建议?

public partial class Form1 : Form
{
    int timerCounter = 0;
    System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer();

    public Form1()
    {
        InitializeComponent();
        timer.Interval = 1000; 
        timer.Enabled = true;
    }

    public void button2_Click(object sender, EventArgs e)
    {
        timer.Start();
        timer.Tick += new EventHandler(timer1_Tick); 

        // code for archiving, streams

        timer.Stop(); 

        MessageBox.Show("Archive was created! :)");
    }

    public void timer1_Tick(object sender, EventArgs e)
    {
        this.label7.Text = (++timerCounter).ToString();
    }  
Run Code Online (Sandbox Code Playgroud)

}

.net c# timer stream

-2
推荐指数
1
解决办法
290
查看次数

定时器处理jFrame并填充进度条

我是初学者,我想在我运行程序时启动计时器(即当父jFrame出现时)并在5秒后处理帧.我想在计时器启动时开始填充虚拟进度条,并将其完全填满,直到计时器熄灭.

java swing timer

-2
推荐指数
1
解决办法
863
查看次数

每秒运行代码正好10000次

我正在为我的程序编写测试代码.我需要代码每秒运行10000次.我的解决方案是:

for(int i = 0; i < 1000; ++i) {
  for(int j = 0; j < 10; ++j) {
  // do something here. Maybe ++k or some code else
  }
  usleep(1);
}
Run Code Online (Sandbox Code Playgroud)

事实证明,时间超过1秒.所以我必须调整1000和100才能满足要求.这不是一个好习惯:当运行时间发生变化时,我必须更改代码.

有任何想法吗?

更新:

该程序正在Linux上运行.我编写了一个msg队列.像往常一样,它有生产者和消费者.我想要全程测试.我需要测试代码发送几个msg,间隔很小(优选100μs).

如果我在没有睡眠的情况下发送所有消息,则消息队列将满,并且在整个测试期间不起作用.

c++ linux loops timer

-2
推荐指数
1
解决办法
1091
查看次数

调用线程无法访问此对象 - Timer

Timer在一个方法中设置了一个间隔为1000每秒钟它将另一个相应的字符Textbox键入一个(几乎自动输入).当我检查_currentTextLength == _text.Length我得到线程错误"调用线程无法访问此对象,因为另一个线程拥有它."

 public void WriteText(string Text)
    {
        timer = new Timer();

        try
        {
            _text = Text;
            timer.Elapsed += new ElapsedEventHandler(timer_Elapsed_WriteText);
            timer.Interval = 1000;
            timer.Enabled = true;
            timer.Start();
        }
        catch
        {
            MessageBox.Show("WriteText timer could not be started.");
        }
    }
    // Write Text Timer Event
    void timer_Elapsed_WriteText(object sender, ElapsedEventArgs e)
    {
        TextBoxAutomationPeer peer = new TextBoxAutomationPeer(_textBox);
        IValueProvider valueProvider = peer.GetPattern(PatternInterface.Value) as IValueProvider;

        valueProvider.SetValue(_text.Substring(0, _currentTextLength));
        if (_currentTextLength == _text.Length) // Error here
        {
            timer.Stop(); …
Run Code Online (Sandbox Code Playgroud)

c# wpf multithreading timer

-2
推荐指数
2
解决办法
1857
查看次数

何时使用以及计时器和线程有什么区别?

刚才有一些关于计时器和线程的混淆,见下面的例子,两个代码都提供了相同的结果(每隔60秒进行一次检查),所以什么时候应该使用计时器?何时我应该使用线程处理作业提供相同的结果?

使用线程:

Thread checkJob = new Thread(checkStatus);
checkJob.Start();

protected void checkStatus()
{
   //Do Checking here
   Thread.Sleep(60000);
}
Run Code Online (Sandbox Code Playgroud)

使用计时器:

public Form1()
        {
            InitializeComponent();
            Timer time = new Timer();
            time.Interval = 60000;
            time.Tick += time_Tick;
            time.Enabled = true;
        }

      void time_Tick(object sender, EventArgs e)
            {
                //Do Checking here
            }
Run Code Online (Sandbox Code Playgroud)

c# multithreading timer

-2
推荐指数
1
解决办法
73
查看次数