标签: timer

定时器还是线程?

我有一个方法(比如method1)写入数据库(sqlserver)和另一个方法(比如method2),它试图在一段时间后访问同一个数据库并更新method1创建的数据行.

当由于局域网被断开而导致方法1无法访问数据库时出现问题(这不是一个例外,如果我的软件中肯定会出现这种情况,如果方法1无法访问db方法2,那么进入细节会使问题过于复杂)无法工作.

我想要做的是如果LAN断开连接,将method1存储值存储到本地数据库而不是服务器,并且一旦它在本地数据库中输入值,应用程序应该在10-15秒之后开始尝试访问服务器.

我应该使用计时器或创建新线程?

c# multithreading timer

0
推荐指数
1
解决办法
1163
查看次数

目标C如何制作一个从两分钟倒计时的计时器?

我在网上寻找答案,但没有运气.我试过了

- (void)viewDidLoad {

[super viewDidLoad];

twoMinTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timer) userInfo:nil repeats:YES]; }

- (void)timer {
for (int totalSeconds = 120; totalSeconds > 0; totalSeconds--){

timerLabel.text = [self timeFormatted:totalSeconds];

if ( totalSeconds == 0 ) {

   [twoMinTimer invalidate];

   } } }
Run Code Online (Sandbox Code Playgroud)

但它没有用,当我去那个视图时,标签从2.00变为0.01然后它就停止了.

任何建议都将不胜感激 - 菲利普

xcode timer objective-c nstimer ios

0
推荐指数
1
解决办法
3311
查看次数

使用VB.net读取和写入命令提示符控制台

我在别处问过类似的问题,但也许我没有问过正确的方法,或者我不够清楚,所以我再问一次.

这是我想要的地方:

  1. 打开Windows命令提示符
  2. 通过dos命令运行DOS应用程序
  3. 阅读dos框中显示的返回文本,并将其显示在Windows窗体的文本框中.这需要定期(例如,每秒)重复,并且不应关闭dos框.

我一直在试图使用Process和StartInfo命令,但它们只运行应用程序并立即关闭进程.我需要保持dos框打开并继续读取dos应用程序添加到其中的任何新文本.我也遇到了这个似乎可以解决我的问题的线程,但它是在C#中我无法转换它:

阅读Windows命令提示符STDOUT

我确实进入了打开命令提示符并启动应用程序的部分,但我不知道如何读取它不时地返回到dos框控制台的数据.我想不断检查变化,以便我可以对它们采取行动,也许使用定时器控件.

请帮忙.

谢谢!

我运行了由Stevedog友情提供的代码并使用它像这样:

  Private WithEvents _commandExecutor As New CommandExecutor()

  Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    _commandExecutor.Execute("c:\progra~2\zbar\bin\zbarcam.exe", "")
  End Sub

  Private Sub _commandExecutor_OutputRead(ByVal output As String) Handles _commandExecutor.OutputRead
    txtResult.Text = output
  End Sub
Run Code Online (Sandbox Code Playgroud)

但我得到的只是空白的dos盒子.zbarcam应用程序运行正常,因为我可以看到相机预览,我也可以看到它检测到QR码,但文本没有显示在dos框中,_commandExecutor_OutputRead除非我关闭DOS框,否则不会触发sub.

vb.net windows timer command-prompt

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

如何安排消息弹出窗口并仅显示最后一条消息?

我创建以下表单,然后单击3个按钮(随机).单击按钮后,必须在单击3秒后显示相关消息.但是,如果我同时点击了另一个按钮,则必须显示该按钮的相关消息,并且必须取消队列中的上一条消息.

例如,如果我button1在11.30.00 点击,则相关消息应仅在11.30.03弹出,如"你点击:1秒前1秒".但是如果我button2在11.30.03之前点击另一个,比如说在11.30.02那么相关的消息应该在11.30.05弹出,比如"你点击:3秒之前的2",并且必须取消预定于11.30.03的消息.

这是我的代码:

private int signal = 0;

public Form1()
{
    InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
    signal = 1;
    displayMessage(signal);
}

private void button2_Click(object sender, EventArgs e)
{
    signal = 2;
    displayMessage(signal);
}

private void button3_Click(object sender, EventArgs e)
{
    signal = 3;
    displayMessage(signal);
}

private void displayMessage(int number) 
{       
    MessageBox.Show("You clicked : "+number+ "before 3 Seconds");
}
Run Code Online (Sandbox Code Playgroud)

.net c# timer

0
推荐指数
1
解决办法
304
查看次数

循环中的Java Update JLabel

很抱歉发布了另一个关于Java swing和循环的帖子.我已经读完了其他人,但没有一个解决方案真的适合我.好的,现在就解决问题吧.我有一个扩展JFrame的类,其中我有一个运行秒表的Timer,如下所示:

class StopWatch extends TimerTask{
    public void run() {
        time.setText(String.format("%02d:%02d", minutes_elapsed,seconds_elapsed));
        seconds_elapsed++;
        if(seconds_elapsed == 60){
            seconds_elapsed = 0;
            minutes_elapsed++;
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

现在,我的标签"时间"更新的唯一方法是当我调用time.update(time.getGraphics())时,但这比前一次更新.任何想法我应该做什么?我也尝试过重绘,验证和绘画.对我来说,油漆做同样的事情,更新确实...任何想法?PS我不知道它是否重要但我在public void start_timer()函数中创建了Timer,如下所示:

public void start_timer(int minutes, int seconds){
        if(timer == null)
             timer = new Timer();
        timer.scheduleAtFixedRate(new StopWatch(),0,1000);
    }
Run Code Online (Sandbox Code Playgroud)

java swing loops timer

0
推荐指数
1
解决办法
858
查看次数

如何在C#中每次迭代for循环之间添加一些延迟?

我正在使用C#编写ASP.NET MVC3.我想在for循环的每次迭代之间添加一些延迟.

for(int i=0; i<5; i++)
{
    //some code
    //add delay here
}
Run Code Online (Sandbox Code Playgroud)

那我该怎么办呢?

c# for-loop timer asp.net-mvc-3

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

暂停计时器似乎无法正常工作

我写了一个应用程序,每10秒通过FTP下载文件,我有以下计时器的代码.

timer3.Tick += new EventHandler(updateLogs);
timer3.Interval = (1000) * (10);
timer3.Enabled = true;
timer3.Start();
Run Code Online (Sandbox Code Playgroud)

我的updateLogs函数:

timer3.Enabled = false;
server1_log = downloadLog("192.168.0.217", 1);
server2_log = downloadLog("192.168.0.216", 2);
server3_log = downloadLog("192.168.0.215", 3);
timer3.Enabled = true;
Run Code Online (Sandbox Code Playgroud)

我意识到请求可能需要超过10秒,这就是为什么我在调用downloadLog()之前禁用定时器,然后启用它.

不过,大约一分钟后,应用程序冻结,CPU使用率跃升至45%以上.当我注释掉timer3的代码时,应用程序运行很长时间并且永远不会崩溃.

有任何想法吗?

c# timer

0
推荐指数
1
解决办法
125
查看次数

移动对象的C#定时器

我有4只狗正在比赛,我需要将它们移动到整个表格上,但是它们不会逐渐移动,它们从起跑线开始并立即传送到终点线,而不会在两者之间移动.每个计时器滴答,其位置.X递增.

我需要一个计时器还是4个计时器?我目前有一个,其间隔设置为400.

这是相关代码:

private void btnRace_Click(object sender, EventArgs e)
{   
    btnBet.Enabled = false;
    timer1.Stop();
    timer1.Start();
}

private void timer1_Tick(object sender, EventArgs e)
{   while (!isWon)
    {
        for (i = 0; i < Dogs.Length; i++) // there are four dogs
        {                    
            if (Dogs[i].Run()) // Run() returns true if full racetrack is covered by this dog
            {
                Winner = i + 1;
                isWon = true;

                MessageBox.Show("We have a winner! Dog #" + Winner);

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

在Dog类中:

public bool Run()
{ …
Run Code Online (Sandbox Code Playgroud)

c# animation timer ticker

0
推荐指数
1
解决办法
6108
查看次数

高精度睡眠在Ruby中

可能重复:
Ruby睡眠或延迟不到一秒钟?

我有100-1000个线程正在运行(或更多).这些线程中的每一个都应该在完全相同的时刻执行特定的方法(尽可能最精确).

我能想到的唯一解决方案就是让每个线程都按照某个时间戳的差异进行休眠,但这sleep()并不准确.我也在考虑使用EventMachine而EventMachine::Timer不是,但这似乎更不可靠和准确.

您将使用什么技术来获得最佳效果?

ruby precision sleep timer

0
推荐指数
1
解决办法
4025
查看次数

如何导致静态块运行?

我已经看到很多关于这个主题的答案,但仍然找不到一个干净的解决方案.

public class ProcessScheduler {
    static {
        Timer timer=new Timer();
        timer.scheduleAtFixedRate(new TimerTask() {
            public void run() {
                LogProcessorServiceImpl.processPageRequestsLogs();
            }
        }, 0, 120);
    }
} 
Run Code Online (Sandbox Code Playgroud)

如何使其执行并对质量解决方案感到满意?我的应用程序基于Spring(不幸的是),我知道我可以在我的一个控制器中引用这个类,它可能会工作.但那太傻了.必须有一个更好的方法.我在Tomcat上没有EJB支持,因此定时器注释对我不起作用.另外,我不想做CRON.我想在此调度程序类中安排所有维护任务.

Servlet类可以通过web.xml(1)加载.我们可以在非servlet类上做类似的事情吗?

java timer

0
推荐指数
1
解决办法
376
查看次数