C# 如何从MVVM DispatchTimer类检查实例变量?
因此,我有一个类来处理MVVM中的计时器:C# 如何从MVVM DispatchTimer类检查实例变量?,c#,.net,mvvm,dispatchertimer,C#,.net,Mvvm,Dispatchertimer,因此,我有一个类来处理MVVM中的计时器: class RecognitionProcessTimer { DispatcherTimer analysisProcessTimer; public int Duration { get; set; } public RecognitionProcessTimer() { this.Duration = 500; } p
class RecognitionProcessTimer
{
DispatcherTimer analysisProcessTimer;
public int Duration { get; set; }
public RecognitionProcessTimer()
{
this.Duration = 500;
}
public void StartTimer()
{
analysisProcessTimer = new DispatcherTimer();
analysisProcessTimer.Interval = TimeSpan.FromMilliseconds(this.Duration);
analysisProcessTimer.Tick += AnalysisProcessTimer_Tick;
analysisProcessTimer.Start();
}
public void StopTimer()
{
if (analysisProcessTimer != null)
{
analysisProcessTimer.Stop();
analysisProcessTimer = null;
}
}
private void AnalysisProcessTimer_Tick(object sender, object e)
{
analysisProcessTimer.Stop();
// C# code current object variables from the other class
}
}
所以,我有一个分析类,它会对计时器的每一个滴答声进行分析。RecognitionProcessTimer
将对此分析类的代码进行初始化和Start()
,但计时器的AnalysisProcessTimer\u Tick
事件需要检查并调用一些当前分析类对象变量。我如何继续实现这一目标
我尝试在tick方法上初始化analysis类,但由于使用了一个新对象,而不是使用初始化RecognitionProcessTimer
类的对象,所以我丢失了其中的所有数据
TLDR:我正在尝试使用初始化RecognitionProcessTimer
的tick方法中的RecognitionProcessTimer
的类中的变量
如果问题似乎不清楚,请让我知道,我会进一步澄清。
附言:不能使用静态变量。分析类是什么样子的?为什么你需要在第一次滴答声后停止计时器?实际上,您可以在
RecognitionProcessTimer
构造函数中初始化所需的所有内容,或者从创建RecognitionProcessTimer
classIs实例的类中将参数传递给它将我的类字段作为参数传递给RecognitionProcessTimer
是一种好的做法吗?analysis类有几个非静态变量,在从Tick
调用analysis方法之前,我需要先在Tick
中签入这些变量。另外,如何从AnalysisProcessTimer\u Tick
方法调用我的分析类方法?请记住,我需要重用初始化RecognitionProcessTimer
的对象。将所有类依赖项传递给构造函数或通过属性是一个很好的做法。不管怎么说,没有上下文和细节很难说。我想我已经提供了足够的上下文。让我知道你到底在找什么。