1

我有一个调用Checking()来更新我的 UI 的函数。我想让这个功能自动运行,每 1 秒运行一次并更新我的 UI。

我怎样才能做到这一点?

这是我的功能:

public MainWindow()
{
    InitializeComponent();
    Checking()
}

public void Checking()
{
    if (status= Good)
        UI.color.fill= Green
    else
        UI.color.Fill = Red
}
4

3 回答 3

1

这段代码可以帮助你

//need to add  System.Timers in usings
using System.Timers;

//inside you code
//create timer with interval 2 sec
Timer timer=new Timer(2000);
//add eventhandler 
timer.Elapsed+=new ElapsedEventHandler(timer_Elapsed);
//start timer
timer.Start();


private void timer_Elapsed(object sender, ElapsedEventArgs e)
    {
        MessageBox.Show("324");
        //or other actions
    }
于 2013-02-01T05:53:26.193 回答
0

DispathTimer 是计时器,它在一个线程中与 UI 一起工作。这段代码可以帮助你

 public partial class MainWindow : Window {
    public MainWindow() {
        InitializeComponent();

        DispatcherTimer timer = new DispatcherTimer(){Interval = new TimeSpan(0,0,0,1)};
        timer.Tick += new EventHandler(timer_Tick);
        timer.Start();
    }

    void timer_Tick(object sender, EventArgs e) {
        Checking();
    }

    public void Checking()
    {   
       .....
    }
于 2013-02-01T07:39:32.973 回答
0

您需要确保在 Checking() 中所做的更改已绑定并为它发送了 IPropertyNotifyChange。

using System.Reactive;
public MainWindow()
{
    InitializeComponent();
    Observable.Interval(TimeSpan.FromSeconds(1))
        .Subscribe( _ => Checking() );
}
于 2013-02-01T04:16:48.590 回答