如何在WPF应用程序中不断调用函数

时间:2015-11-04 12:55:39

标签: wpf

我想不断检查xml文件是否已更新...我想创建一个不断被调用的函数,即使它是每隔一刻钟...

private void button_Click(object sender, RoutedEventArgs e)
    {
        while (true)
        {
            textBox.Text = "Count" + Count++;
        }
    }

2 个答案:

答案 0 :(得分:4)

您可以使用async/await

轻松实现这一目标
public async void Poll()
{
    while(true)
    {
        textBox.Text = "Count" + Count++;
        await Task.Delay(TimeSpan.FromMilliseconds(250);
    }
}

要提供取消选项,请提供CancellationToken

while(!cancellationToken.IsCancellationRequested)

有关详细信息,请参阅CancellationToken

的文档

答案 1 :(得分:1)

无轮询,您可以收到有关文件系统修改的警告,包括FileSystemWatcher的子目录。

4类事件:
  - 创建了   - 改变了   - 删除了   - 重命名

FileSystemWatcher watcher = new FileSystemWatcher(path);
watcher.IncludeSubdirectories = true;
watcher.Filter = "*.config";
watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
    | NotifyFilters.FileName | NotifyFilters.DirectoryName;
watcher.EnableRaisingEvents = true;
watcher.Changed += new FileSystemEventHandler(OnChanged);
watcher.Created += new FileSystemEventHandler(OnCreated);
watcher.Deleted += new FileSystemEventHandler(OnDeleted);
watcher.Renamed += new RenamedEventHandler(OnRenamed);

void OnChanged(object source, FileSystemEventArgs e)
{
    // Specify what is done when a file is changed, created, or deleted.
   Console.WriteLine("File: " +  e.FullPath + " " + e.ChangeType);
}