【问题标题】:refresh data in windows form application在 windows 窗体应用程序中刷新数据
【发布时间】:2019-01-09 13:31:10
【问题描述】:

我不知道如何用谷歌搜索。我找到了有关设置处理按钮单击请求的信息,但我找不到有关如何在设定的时间间隔内刷新我的应用程序数据的任何信息。我是 Windows 窗体的初学者,所以我想了解更多有关它的信息。

我正在构建一个天气应用程序,并且我有一个从 openWeatherMap 的 rest api 获取数据的客户端。我只是不确定如何设置我的表单来显示它并每隔 10 分钟刷新一次。有人可以给我一些例子/资源吗?

【问题讨论】:

  • 我看过的东西,也许有人可以添加:
  • 您是否只是在寻找类似Timer 的对象? docs.microsoft.com/en-us/dotnet/api/system.windows.forms.timer
  • @ClintonCochrane - 计时器是众多潜在正确答案之一。 SO 不打算成为雇用类型网站的编码器。我看到有人提到过,但您仍然不确定该方法。您将需要进行一些研究,以了解如何根据您的情况实施整体解决方案。我建议改变你的方法。您想要在计时器上刷新数据的事实是代码异味。考虑不阻塞 UI 的异步方法。并考虑对数据采用推送方法(而不是在计时器上轮询)。谷歌投票与推送
  • 我更喜欢异步方法。如果您有一些资源或某种方式来进行搜索,这样我就可以走上正确的轨道,那就太好了。

标签: c# winforms rest asynchronous


【解决方案1】:

我认为您希望使用类似 Timer 类的东西。

【讨论】:

  • 那种。我正在寻找那个,但我只是不确定如何在我的表单中实际设置它。就像我让我的加载无效异步调用并在那里设置计时器一样?或者什么。
  • 链接中的示例是不言自明的,它创建一个计时器并每 5 秒引发一个 MessageBox。只需执行类似的操作,而是检索您的数据并使用新数据更新您的控件。
【解决方案2】:

了解System.Windows.Forms.Timer 班级和他的Tick event

【讨论】:

  • 这会在表单加载中进行,还是我会将其放入实际执行调用的方法中,然后从表单加载中调用它
  • 是的,您可以在表单出现后通过他的Start() method 初始化计时器开始时间。
猜你喜欢
  • 1970-01-01
  • 2011-03-31
  • 1970-01-01
  • 2011-02-19
  • 1970-01-01
  • 2021-01-31
  • 1970-01-01
  • 2015-04-18
相关资源
最近更新 更多