코드에서 dispatcherTimer의 사용과 관련하여 질문이 있습니다. 아래에있는 내 상황을보고하십시오 :dispatcherTimer.Stop을 다른 함수로 사용하는 방법?
private void CheckShow(object sender, System.Windows.RoutedEventArgs e)
{
DispatcherTimer dispatcherTimer = new DispatcherTimer();
dispatcherTimer.Interval = new TimeSpan(0, 0, 0, 0, 1);
dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
dispatcherTimer.Start();
string etime = DateTime.Now.Second.ToString();
}
private void dispatcherTimer_Tick(object sender, EventArgs e)
{
if(System.IO.File.Exists(@"C:\Default.xml"))
{
LoadingRecent.Text = "Loading Default Show...";
LoadBar.Opacity = 100;
string time1 = DateTime.Now.Millisecond.ToString();
string time2 = DateTime.Now.Second.ToString();
double huidigetijd = System.Convert.ToDouble(time2 + "." + time1);
LoadBar.Value = huidigetijd;
Remainingnummer.Text = Convert.ToString(10 - DateTime.Now.Second);
string etime = DateTime.Now.Second.ToString();
if (etime == "10")
{
var provider = (XmlDataProvider)this.Resources["CUEData"];
var loadfilepath = @"C:\Default.xml";
provider.Source = new Uri(loadfilepath, UriKind.Absolute);
Storyboard Hoofdvenster = (Storyboard)Resources["Hoofdvenster"];
Hoofdvenster.Begin(this, true);
}
당신이 정상 기능에서 볼 수 있듯이 나는 타이머를 시작하고 타이머가 10 초에 도달하면 다음 틱에 나는 몇 가지 물건을한다. 그러나 if 문에서 dispatchertimer를 중지하고 싶지만 문맥 오류가 발생합니다.
그래서 다른 기능에서 타이머를 멈추게하려면 어떻게해야합니까?
업데이트 : 나는 당신의 솔루션에 맞게 시도하지만 객체 참조가 인스턴스 오류
public void CheckShow(object sender, System.Windows.RoutedEventArgs e)
{
DispatcherTimer dispatcherTimer = new DispatcherTimer();
dispatcherTimer.Interval = new TimeSpan(0, 0, 0, 0, 1);
dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
dispatcherTimer.Start();
string etime = DateTime.Now.Second.ToString();
if (etime == "13")
{
dispatcherTimer.Stop();
LoadingRecent.Text = "You are currently working on a show. Press New or Load to create or load a different show";
LoadBar.Opacity = 0;
}
}
private DispatcherTimer dispatcherTimer;
private void dispatcherTimer_Tick(object sender, EventArgs e)
{
if(System.IO.File.Exists(@"C:\Default.xml"))
{
LoadingRecent.Text = "Loading Default Show...";
LoadBar.Opacity = 100;
string time1 = DateTime.Now.Millisecond.ToString();
string time2 = DateTime.Now.Second.ToString();
double huidigetijd = System.Convert.ToDouble(time2 + "." + time1);
LoadBar.Value = huidigetijd;
Remainingnummer.Text = Convert.ToString(10 - DateTime.Now.Second);
string etime = DateTime.Now.Second.ToString();
if (etime == "10")
{
var provider = (XmlDataProvider)this.Resources["CUEData"];
var loadfilepath = @"C:\Default.xml";
provider.Source = new Uri(loadfilepath, UriKind.Absolute);
Storyboard Hoofdvenster = (Storyboard)Resources["Hoofdvenster"];
Hoofdvenster.Begin(this, true);
dispatcherTimer.Stop();
}
을 어떻게 그 일이 것? 예를 들어 줄 수 있습니까? – internetmw
여러 가지를 시도했지만 오류가 계속 발생합니다. 객체 참조가 객체의 인스턴스로 설정되지 않았습니다 ... – internetmw
CheckShow 내부에서 "DispatcherTimer dispatcherTimer = new DispatcherTimer();"를 사용하고 있습니다. "dispatcherTimer = new DispatcherTimer();"로 바꾸십시오. –