如何知道winform的启动时间是否超过5秒?

时间:2016-05-29 16:03:18

标签: c# .net multithreading winforms process

我有一种情况,我必须在c#-Winform中使用编码创建一些机制,这样当我启动任何特定的winform时,如果它需要超过指定的秒数才能启动(比方说10秒),那么我必须显示一个装载机(ajax装载机类型的东西),直到我没有完全显示表格。 (这种形式需要很多次,因为它在经过大量计算后显示数据,所以我希望同时显示一些加载器。)

I successfully designed the circle like loader。现在的问题是:

(1。)如何知道表单启动是否超过10 seconds?所以我启动装载机。

(2。)另一个问题是我必须使它适用于所有形式的共同点(因为项目非常大,所以不是为每个单独的表单编写加载器的代码,我希望知道任何方式来实现全局此功能,如果任何当前启动的表单需要超过10秒,那么它显示加载器(并且如果它们需要超过10秒而不需要编写代码以在每个单独的表单上显示,则应该在启动时适用于所有表单)并停止加载当表格出现时。

如何实现这两个功能?

1 个答案:

答案 0 :(得分:1)

只有在后台线程中处理数据时才能执行此操作,否则表单将被阻止,您无法进行任何更改。

因此,如果它在单独的线程中完成工作,请尝试以下操作:

  1. 创建基类并实现。

    1. 一个。写一个名为DataLoaded或其他东西的标志。
    2. 湾写一个名为OutOfTime的标志。
    3. ℃。动态创建加载器显示所需的控件。
  2. 在基类中使用Timer(有3个不同的,明智地选择)并在X秒内调用方法。
  3. 加载数据时如果!OutOfTime设置DataLoaded = true否则关闭/隐藏加载程序以防下一步显示加载程序。
  4. 当调用Timer的事件/方法时,检查数据是否已加载,如果没有,则表示在那些X秒内它们仍在处理,因此show / call /显示加载器。
  5. 只是一个想法,一开始可能不会工作,但它或多或少会是我要做的事情:)