timer问题,第一次使用能否给一段实例代码,感谢~

kmhugh 2009-12-23 10:02:46
rt!
...全文
95 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
woshifou 2009-12-23
  • 打赏
  • 举报
回复
学习。
kmhugh 2009-12-23
  • 打赏
  • 举报
回复
ok,搞定,感谢各位~
chengwen2402163 2009-12-23
  • 打赏
  • 举报
回复
protected void Timer1_Tick(object sender, EventArgs e)
{
//业务
}
CoolCodingMan 2009-12-23
  • 打赏
  • 举报
回复
#include <boost/timer.hpp>
using boost::timer;

void test()
{
timer t;
double time=1.0;
for (long loops = 0; loops < LONG_MAX
&& loop_timer.elapsed() < time; ++loops ) {}
}
ProjectDD 2009-12-23
  • 打赏
  • 举报
回复
System.Timers.Timer t = new System.Timers.Timer();
public void Run() {
t.Elapsed += new ElapsedEventHandler(t_Elapsed);
t.Start();
Console.Read();
}
int end = 0;
void t_Elapsed(object sender , ElapsedEventArgs e) {
if (end > 50) t.Stop();
Thread.Sleep(500);
Console.WriteLine("click");
end++;
}

//
在屏幕上每行打印"click" 50行后众目停止,
jwdream2008 2009-12-23
  • 打赏
  • 举报
回复
百度搜索一下!
jingshuaizhjason 2009-12-23
  • 打赏
  • 举报
回复
这是一个关于Timer的例子,我们将创建一个简单的应用程序,使用Timer对象来倒计时一个由自己设定的时间并循环播放一段音乐,直到重设Timer控件。 
Timer对象基础
首先你要知道的是,使用Timer对象你需要访问如下命名空间:

using System.Threading;
using System.Timers;

接下来,介绍一下创建一个Timer的要点以及为这个timer对象的Elapsed事件设定事件委派。
先创建一个Timer对象,这里定义使用的timer为timerClock。接下来设定Elapsed事件委派,当事件被触发时,指定的委派将被调用,这里定义使用的委派名称为OnTimer()。
接着,设定Interval属性,使用毫秒数值指示希望Elapsed事件被调用的间隔,这意味着,当定义Interval属性为1000毫秒时,定义的委派OnTimer()将每隔1000毫秒被调用一次,或者说是每隔1秒。
最后,需要设定Enabled属性为true,以使这个timer对象开始工作。接下来,剩下的只是一个小问题—创建一个委派,在这个timer对象的Elapsed属性被触发时调用。如果以前没有使用过委派,不用担心,它们很容易使用,只需要创建一个方法,用来接收适合你捕获事件的一些变量。
针对Elapsed事件,这个委派需要接收一个普通对象和一个ElapsedEventArgs对象。

private System.Timers.Timer timerClock = new System.Timers.Timer();
timerClock.Elapsed += new ElapsedEventHandler(OnTimer);
timerClock.Interval = 1000;
timerClock.Enabled = true;
public void OnTimer( Object source, ElapsedEventArgs e )
{
//Your code here
}
在报警程序中使用Timer控件
介绍了这些基础,现在来看在实际应用中的代码。注意,这里并不包括播放音乐和显示最小化图标的代码。
在下面的代码中,可以看到,将实例化Timer对象的方法放在初始化方法InitializeTimer()中,这个方法将被类构造调用。并且创建了两个方法,inputToSeconds()和secondsToTime()用来将字符串格式的时间格式转换为正型,以及一个反处理过程。这些方法只是用来帮助我们在TextBox控件中显示日期格式,这在整个应用的结构中,并不十分重要。其他的那些代码,是标准的Visual Studio.NET为Win Form程序生成的样板文件。

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Threading;
using System.Timers;
using System.IO;
using System.Reflection;
namespace timerAlarm
{
public class TimerForm : System.Windows.Forms.Form
{
//Controls and Components
private System.Windows.Forms.TextBox timerInput;
private System.Windows.Forms.Button StartButton;
private System.Windows.Forms.Button ResetButton;
private System.ComponentModel.IContainer components;
//Timer and associated variables
private System.Timers.Timer timerClock = new System.Timers.Timer();
private int clockTime = 0;
private int alarmTime = 0;
public TimerForm()
{
InitializeComponent();
InitializeTimer();
}
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
#endregion
public void InitializeTimer()
{
this.timerClock.Elapsed += new ElapsedEventHandler(OnTimer);
this.timerClock.Interval = 1000;
this.timerClock.Enabled = true;
}
[STAThread]
static void Main()
{
Application.Run(new TimerForm());
}
private void TimerForm_Resized(object sender, System.EventArgs e)
{
if( this.WindowState == FormWindowState.Minimized )
{
this.Hide();
}
}
private void StartButton_Click(object sender, System.EventArgs e)
{
this.clockTime = 0;
inputToSeconds( this.timerInput.Text );
}
private void ResetButton_Click(object sender, System.EventArgs e)
{
try
{
this.clockTime = 0;
this.alarmTime = 0;
this.timerInput.Text = "00:00:00";
}
catch( Exception ex )
{
MessageBox.Show("ResetButton_Click(): " + ex.Message );
}
}
public void OnTimer(Object source, ElapsedEventArgs e)
{
try
{
this.clockTime++;
int countdown = this.alarmTime - this.clockTime ;
if( this.alarmTime != 0 )
{
this.timerInput.Text = secondsToTime(countdown);
}
//Sound Alarm
if( this.clockTime == this.alarmTime )
{
MessageBox.Show("Play Sound");
}
}
catch( Exception ex )
{
MessageBox.Show("OnTimer(): " + ex.Message );
}
}
private void inputToSeconds( string timerInput )
{
try
{
string[] timeArray = new string[3];
int minutes = 0;
int hours = 0;
int seconds = 0;
int occurence = 0;
int length = 0;
occurence = timerInput.LastIndexOf(":");
length = timerInput.Length;
//Check for invalid input
if( occurence == -1 || length != 8 )
{
MessageBox.Show("Invalid Time Format.");
ResetButton_Click( null, null );
}
else
{
timeArray = timerInput.Split(’:’);
seconds = Convert.ToInt32( timeArray[2] );
minutes = Convert.ToInt32( timeArray[1] );
hours = Convert.ToInt32( timeArray[0] );
this.alarmTime += seconds;
this.alarmTime += minutes*60;
this.alarmTime += (hours*60)*60;
}
}
catch( Exception e )
{
MessageBox.Show("inputToSeconds(): " + e.Message );
}
}
public string secondsToTime( int seconds )
{
int minutes = 0;
int hours = 0;
while( seconds >= 60 )
{
minutes += 1;
seconds -= 60;
}
while( minutes >= 60 )
{
hours += 1;
minutes -= 60;
}
string strHours = hours.ToString();
string strMinutes = minutes.ToString();
string strSeconds = seconds.ToString();
if( strHours.Length < 2 )
strHours = "0" + strHours;
if( strMinutes.Length < 2 )
strMinutes = "0" + strMinutes;
if( strSeconds.Length < 2 )
strSeconds = "0" + strSeconds;
return strHours + ":" + strMinutes + ":" + strSeconds;
}
}
}
实际的执行代码比上面的要多,本范例演示了Timer在实际环境中的一个简单应用,仅仅使用了一些简单的基础知识来创建一个简单的应用。





本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jiaao/archive/2008/06/18/2560465.aspx
silentwins 2009-12-23
  • 打赏
  • 举报
回复
private void InitializeTimer()
{
//' Run this procedure in an appropriate event.
// Set to 1 second.
Timer1.Interval = 1000;
// Enable timer.
Timer1.Enabled = true;
Button1.Text = "Stop";
}

private void Timer1_Tick(object Sender, EventArgs e)
{
// Set the caption to the current time.
Label1.Text = DateTime.Now.ToString();
}

private void Button1_Click()
{
if ( Button1.Text == "Stop" )
{
Button1.Text = "Start";
Timer1.Enabled = false;
}
else
{
Button1.Text = "Stop";
Timer1.Enabled = true;
}
}

hhc123 2009-12-23
  • 打赏
  • 举报
回复
lz你要真不会可以看看MSDN嘛
silentwins 2009-12-23
  • 打赏
  • 举报
回复
using System;
using System.Threading;


class App {
public static void Main() {
Console.WriteLine("Checking for status updates every 2 seconds.");
Console.WriteLine(" (Hit Enter to terminate the sample)");
Timer timer = new Timer(new TimerCallback(CheckStatus), null, 0, 2000);
Console.ReadLine();
timer.Dispose();
}


// The callback method's signature MUST match that of a System.Threading.TimerCallback
// delegate (it takes an Object parameter and returns void)
static void CheckStatus(Object state) {
Console.WriteLine("Checking Status.");
// ...
}
}
angel6709 2009-12-23
  • 打赏
  • 举报
回复
interval 间隔 毫秒单位
start()开始
Tick()每次执行
stop()结束

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧