谁能帮我详细的系统的解释一下 System.Windows.Forms.Timer的原理和用法?

sarmoo 2003-06-27 01:38:39
高分相送!谢谢!!
...全文
161 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hjkinumob 2003-08-16
  • 打赏
  • 举报
回复
System.Windows.Forms.Timer的用法:
属性
Enable 为false时停止Timer,设为true时启动Timer
Interval 设置时间间隔,单位为毫秒。
事件
Tick 设置的时间到了之后触发
例:
private void timer1_Tick(object sender, System.EventArgs e)
{
label1.Text = "xjsh";
}

private void button1_Click(object sender, System.EventArgs e)
{
if (timer1.Enabled)
{
timer1.Enabled = false;
}
else
{
timer1.Enabled = true;
}
}
hjkinumob 2003-08-16
  • 打赏
  • 举报
回复
System.Windows.Forms.Timer的用法:
属性
janus1999 2003-08-16
  • 打赏
  • 举报
回复
麻烦,这些MSDN上有的东西就别拿出来啦,基本上大家都会看的。
sarmoo 2003-06-27
  • 打赏
  • 举报
回复
你不觉得MSDN讲的太生硬了吗?
我想知道“个人化”一点的解释、用法和心得。
谢谢!
周自横 2003-06-27
  • 打赏
  • 举报
回复
我要分分啊
飞不动 2003-06-27
  • 打赏
  • 举报
回复
自己多看看MSDN吧!!
飞不动 2003-06-27
  • 打赏
  • 举报
回复


实现在用户定义的时间间隔引发事件的计时器。此计时器最宜用于 Windows 窗体应用程序中,并且必须在窗口中使用。

有关此类型所有成员的列表,请参阅 Timer 成员。

System.Object
System.MarshalByRefObject
System.ComponentModel.Component
System.Windows.Forms.Timer

[Visual Basic]
Public Class Timer
Inherits Component
[C#]
public class Timer : Component
[C++]
public __gc class Timer : public Component
[JScript]
public class Timer extends Component
线程安全
此类型的所有公共静态(Visual Basic 中为 Shared)成员对多线程操作而言都是安全的。但不保证任何实例成员是线程安全的。

备注
Timer 用于以用户定义的事件间隔触发事件。Windows 计时器是为单线程环境设计的,其中,UI 线程用于执行处理。它要求用户代码有一个可用的 UI 消息泵,而且总是在同一个线程中操作,或者将调用封送到另一个线程。

使用此计时器时,请使用控件的 Tick 事件执行轮询操作,或在指定的时间内显示启动画面。每当 Enabled 属性设置为 true 且 Interval 属性大于 0 时,将引发 Tick 事件,引发的时间间隔基于 Interval 属性设置。

此类提供用于设置时间间隔以及启动和停止计时器的方法。

示例
[Visual Basic, C#] 下面的示例实现简单的间隔计时器,该计时器每五秒钟发一次警报。当发生警报时,MessageBox 显示该警报已激活的次数合计并询问用户计时器是否应继续运行。

[Visual Basic]
Public Class Class1
Private Shared myTimer As New System.Windows.Forms.Timer()
Private Shared alarmCounter As Integer = 1
Private Shared exitFlag As Boolean = False

' This is the method to run when the timer is raised.
Private Shared Sub TimerEventProcessor(myObject As Object, _
myEventArgs As EventArgs)
myTimer.Stop()

' Displays a message box asking whether to continue running the timer.
If MessageBox.Show("Continue running?", "Count is: " & alarmCounter, _
MessageBoxButtons.YesNo) = DialogResult.Yes Then
' Restarts the timer and increments the counter.
alarmCounter += 1
myTimer.Enabled = True
Else
' Stops the timer.
exitFlag = True
End If
End Sub

Public Shared Sub Main()
' Adds the event and the event handler for the method that will
' process the timer event to the timer.
AddHandler myTimer.Tick, AddressOf TimerEventProcessor

' Sets the timer interval to 5 seconds.
myTimer.Interval = 5000
myTimer.Start()

' Runs the timer, and raises the event.
While exitFlag = False
' Processes all the events in the queue.
Application.DoEvents()
End While

End Sub

End Class
[C#]
public class Class1 {
static System.Windows.Forms.Timer myTimer = new System.Windows.Forms.Timer();
static int alarmCounter = 1;
static bool exitFlag = false;

// This is the method to run when the timer is raised.
private static void TimerEventProcessor(Object myObject,
EventArgs myEventArgs) {
myTimer.Stop();

// Displays a message box asking whether to continue running the timer.
if(MessageBox.Show("Continue running?", "Count is: " + alarmCounter,
MessageBoxButtons.YesNo) == DialogResult.Yes) {
// Restarts the timer and increments the counter.
alarmCounter +=1;
myTimer.Enabled = true;
}
else {
// Stops the timer.
exitFlag = true;
}
}

public static int Main() {
/* Adds the event and the event handler for the method that will
process the timer event to the timer. */
myTimer.Tick += new EventHandler(TimerEventProcessor);

// Sets the timer interval to 5 seconds.
myTimer.Interval = 5000;
myTimer.Start();

// Runs the timer, and raises the event.
while(exitFlag == false) {
// Processes all the events in the queue.
Application.DoEvents();
}
return 0;
}
}
[C++, JScript] 没有可用于 C++ 或 JScript 的示例。若要查看 Visual Basic 或 C# 示例,请单击页左上角的语言筛选器按钮 。

110,538

社区成员

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

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

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