【发布时间】:2020-07-13 14:20:00
【问题描述】:
我来自嵌入式 C 编程,我对 oop、任务、线程、ecc 完全不了解。 我正在了解 C# 和 oop 的基本概念,并想尝试编写一个简单的秒表。
目标:用按钮切换秒表状态,并在按钮内部显示值。
到目前为止,我已经做到了:
namespace Cronometro
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
}
public class MyTimerClass
{
private DateTime TimeValue;
private System.Timers.Timer TimerObj;
private const int TimeInterval = 1;
public MyTimerClass()
{
TimeValue new DateTime(0, 0, 0, 0, 0, 0, 0, DateTimeKind.Local);
TimerObj = new System.Timers.Timer(TimeInterval);
TimerObj.AutoReset = true;
TimerObj.Elapsed += TimerObj_Elapsed;
}
private void TimerObj_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
TimeValue = TimeValue.AddMilliseconds((double)TimeInterval);
}
public void Start()
{
TimerObj.Start();
}
public void Stop()
{
TimerObj.Stop();
}
}
}
说到这里,我只是想用 Button.Content 打印值,但似乎我不能在 MainWindow 类之外使用它。
我该怎么办?我开始考虑在主类中创建一个任务并等待计时器事件打印值,但我对线程和任务一无所知。
【问题讨论】:
-
首先,在表单上添加一个按钮。没有按钮,您将无法按下它。
-
为什么要包装
Timer类?您似乎没有在那里添加任何值,因此只需在没有包装器的主类中使用它并处理 elapsed 事件。 -
我明白你的观点@RonBeyer,但这只是为了练习课程。