【问题标题】:Real-Time data from TextFile来自 TextFile 的实时数据
【发布时间】:2021-10-02 06:56:19
【问题描述】:

大家下午好!

我有一个关于在 ASP.NET 中读取实时数据/值的问题。

我有想要显示实际温度状态的项目。我的 Thermometer 每 10 秒向文本文件发送一次温度状态,我正在我的 ASP.NET 网络表单中读取它。 但我不知道什么是正确的方法?我应该设置自动更新还是有其他方式???

非常感谢您的建议。

【问题讨论】:

  • 假设您别无选择地等待文本文件更新,而不是诸如将数据直接传送到您的程序之类的替代方法。您可能需要考虑使用FileSystemWatcher 在文件写入时收到通知。
  • 使用 FileSystemWatcher 我可以从该 txtFile 获取实时值?

标签: c# asp.net webforms


【解决方案1】:

是的,您可以使用 FileSystem Watcher 做到这一点:

FileSystemWatcher fwatcher = new FileSystemWatcher();
fwatcher.Path = Path.GetDirectoryName({your file full path}); ;
fwatcher.Filter = Path.GetFileName({your file full path});
//types of events to watch 
fwatcher.NotifyFilter=NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName;
fwatcher.EnableRaisingEvents = true;

然后您可以捕获更改以便在需要时重新加载您的文本文件,如下例所示:(

private void Changed(object sender, FileSystemEventArgs e)

{

    //insert your logic here to reload your file and make your "things"
}

【讨论】:

  • 请往下看,我已经写了代码,但是出了点问题……谢谢你的回答。
【解决方案2】:

我不知道 - 实时流没有运行... 怎么了?

protected void Page_Load(object sender, EventArgs e)

    {




        TextReader tr = new StreamReader(@"C:\Help\H1.txt");


        Label1.Text = tr.ReadLine() + " °C";
        Label1.Text  += tr.ReadToEnd();

        tr.Close();

        FileSystemWatcher fwatcher = new FileSystemWatcher();

        

        fwatcher.Path = Path.GetDirectoryName(@"C:\Help\H1.txt"); 
        fwatcher.Filter = Path.GetFileName(@"C:\Help\H1.txt");

        //types of events to watch 
        fwatcher.NotifyFilter = NotifyFilters.LastWrite;
        fwatcher.EnableRaisingEvents = true;


       fwatcher.Changed += Changed;




    }

    public void Changed(Object sender, FileSystemEventArgs e)
    {
        TextReader tr = new StreamReader(@"C:\Help\H1.txt");
        Label1.Text = tr.ReadLine() + " °C";
        Label1.Text += tr.ReadToEnd();

        tr.Close();

    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-11
    • 2023-01-08
    • 2019-12-26
    • 1970-01-01
    • 2020-07-01
    相关资源
    最近更新 更多