假设我们在.Net应用程序中使用System.Windows.Forms.Timer,在计时器上使用Start()和Stop()方法与使用Enabled属性之间是否有任何有意义的区别?
例如,如果我们希望在进行某些处理时暂停计时器,我们可以这样做:
myTimer.Stop();
// Do something interesting here.
myTimer.Start();
Run Code Online (Sandbox Code Playgroud)
或者,我们可以这样做:
myTimer.Enabled = false;
// Do something interesting here.
myTimer.Enabled = true;
Run Code Online (Sandbox Code Playgroud)
如果没有显着差异,社区是否就选择哪个选项达成共识?
我正准备使用新的EJB3 TimerService(作为Java EE 6的一部分),和往常一样,我对JavaDoc的简洁性印象深刻:)
你知道对象的persistent属性有什么影响TimerConfig吗?
JavaDoc TimerConfig说:persistent属性确定相应的计时器是否具有跨越创建它的JVM的生命周期.它是可选的,默认为true.
我想说一句话:
Your download will begin in (10, 9, 8, etc. Beginning on page load) seconds.
我已经设置了10秒的下载文本,我查看了其他stackoverflow帖子.它们都包括CSS和Jquery.我想要一个Javascript/HTML计时器.
没有其他请求用简单的行说明"你下载将在x秒开始".我该怎么做?
运行以下(略微伪)代码会产生以下结果.我对计时器的真空程度感到震惊(每次增加约14ms Tick).
那里有更准确的东西吗?
void Main()
{
var timer = new System.Threading.Timer(TimerCallback, null, 0, 1000);
}
void TimerCallback(object state)
{
Debug.WriteLine(DateTime.Now.ToString("ss.ffff"));
}
Sample Output:
...
11.9109
12.9190
13.9331
14.9491
15.9632
16.9752
17.9893
19.0043
20.0164
21.0305
22.0445
23.0586
24.0726
25.0867
26.1008
27.1148
28.1289
29.1429
30.1570
31.1710
32.1851
Run Code Online (Sandbox Code Playgroud) 在我的项目中实现它之前,我已经用计时器创建了一个测试应用程序.这是我第一次使用计时器.但问题是当我实现计时器使用时[NSTimer timerWithTimeInterval: target: selector: userInfo: repeats: ];,它无法正常工作.这是我的代码,界面:
@interface uialertViewController : UIViewController
{
NSTimer *timer;
}
-(void)displayAlert;
-(void)hideandview;
@end
Run Code Online (Sandbox Code Playgroud)
执行:
@implementation uialertViewController
- (void)viewDidLoad {
[self displayAlert];
[super viewDidLoad];
}
-(void)displayAlert{
timer = [NSTimer timerWithTimeInterval:1 target:self selector:@selector(hideandview) userInfo:nil repeats:NO];
alert = [[UIAlertView alloc] initWithTitle:@"testing" message:@"hi hi hi" delegate:nil cancelButtonTitle:@"continue" otherButtonTitles:nil];
[alert show];
[alert release];
alert = nil;
}
-(void)hideandview{
NSLog(@"triggered");
[alert dismissWithClickedButtonIndex:0 animated:YES];
[alert release];
[self displayAlert];
}
@end
Run Code Online (Sandbox Code Playgroud)
然后我换 [NSTimer timerWithTimeInterval: target: selector: userInfo: repeats: ]; 了 [NSTimer …
好的,我System.Timers.Timer在.Net 4中使用C#.
我有我的计时器对象:
var timer = new Timer {Interval = 123};
Run Code Online (Sandbox Code Playgroud)
我有一个Timer Elapsed事件处理程序指向一个像这样的方法:
timer.Elapsed += MyElapsedMethod;
Run Code Online (Sandbox Code Playgroud)
我的方法看起来像这样:
static void MyElapsedMethod(object sender, ElapsedEventArgs e)
{
Console.WriteLine("Foo Bar");
}
Run Code Online (Sandbox Code Playgroud)
我想将一个字符串传递给这个方法,我该怎么做?
谢谢
我在c#.net中创建了一个带有计时器的Windows服务.它在Visual Studio中调试/构建项目时工作正常,但安装后它不执行其操作.
这背后可能是什么原因?
代码:
public partial class Service1 : ServiceBase
{
FileStream fs;
StreamWriter m_streamWriter;
Timer tm = new Timer();
public Service1()
{
InitializeComponent();
this.ServiceName = "timerservice";
tm.Interval = 2000;
tm.Tick += new EventHandler(PerformOperations);
tm.Start();
fs = new FileStream(@"c:\mcWindowsService.txt", FileMode.OpenOrCreate, FileAccess.Write);
m_streamWriter = new StreamWriter(fs);
m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);
}
private void PerformOperations(object sener, EventArgs e)
{
//StreamWriter swr = new StreamWriter("c:\\test_from_database.txt",true);
try
{
OdbcConnection con = new OdbcConnection("DSN=liquor_data");
OdbcDataAdapter adp = new OdbcDataAdapter("", con);
DataSet ds = new DataSet();
string sql …Run Code Online (Sandbox Code Playgroud) 上下文
我最近发布了一个计时器类,用于审查Code Review.我有一种直觉感觉有并发错误,因为我曾经看过1单元测试失败,但无法重现失败.因此,我的代码审查发布.
我得到了一些很好的反馈,突出了代码中的各种竞争条件.(我想)我理解了问题和解决方案,但在进行任何修复之前,我想通过单元测试来暴露这些错误.当我尝试时,我意识到这很困难.各种堆栈交换答案建议我必须控制线程的执行以暴露bug,并且任何人为的时间不一定可移植到不同的机器上.这似乎是我试图解决的问题之外的许多偶然的复杂性.
相反,我尝试使用最好的静态分析(SA)工具python,PyLint,看看它是否会挑出任何错误,但它不能.为什么人类可以通过代码审查(实质上是SA)找到错误,但SA工具不能?
由于害怕尝试让Valgrind使用python(听起来像牦牛皮),我决定在修复错误时不要先复制它们.现在我在泡菜.
这是现在的代码.
from threading import Timer, Lock
from time import time
class NotRunningError(Exception): pass
class AlreadyRunningError(Exception): pass
class KitchenTimer(object):
'''
Loosely models a clockwork kitchen timer with the following differences:
You can start the timer with arbitrary duration (e.g. 1.2 seconds).
The timer calls back a given function when time's up.
Querying the time remaining has 0.1 second accuracy.
'''
PRECISION_NUM_DECIMAL_PLACES = 1
RUNNING = "RUNNING"
STOPPED = "STOPPED" …Run Code Online (Sandbox Code Playgroud) 我怎样才能创建一个每两秒触发一次的计时器,它会在我屏幕上的HUD上将分数增加一个?这是我对HUD的代码:
@implementation MyScene
{
int counter;
BOOL updateLabel;
SKLabelNode *counterLabel;
}
-(id)initWithSize:(CGSize)size
{
if (self = [super initWithSize:size])
{
counter = 0;
updateLabel = false;
counterLabel = [SKLabelNode labelNodeWithFontNamed:@"Chalkduster"];
counterLabel.name = @"myCounterLabel";
counterLabel.text = @"0";
counterLabel.fontSize = 20;
counterLabel.fontColor = [SKColor yellowColor];
counterLabel.horizontalAlignmentMode = SKLabelHorizontalAlignmentModeCenter;
counterLabel.verticalAlignmentMode = SKLabelVerticalAlignmentModeBottom;
counterLabel.position = CGPointMake(50,50); // change x,y to location you want
counterLabel.zPosition = 900;
[self addChild: counterLabel];
}
}
Run Code Online (Sandbox Code Playgroud) 我是一名Java初学者,并且已经为这个问题提供了各种解决方案,并且已经让我自己打结了.我已经尝试过使用Threads,然后发现了这个Timer类,并且到目前为止没有成功.如果您可以使用main方法发布可执行代码,那么我可以看到它正常工作并从那里开始玩,那将是很棒的.
doSomething()doSomething()再次呼叫.可能使用这个:http://docs.oracle.com/javase/6/docs/api/java/util/Timer.html
timer ×10
c# ×4
.net ×2
ios ×2
ejb-3.0 ×1
html ×1
java ×1
java-ee-6 ×1
javascript ×1
nstimer ×1
objective-c ×1
python ×1
sprite-kit ×1
testing ×1
windows ×1