如何知道winform启动是否需要超过5秒



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

CCD_ 1。现在的问题是:

(1.)如何知道表单的启动时间是否超过10 seconds?所以我启动了loader。

(2.)另一个问题是,我必须让它适用于所有共同的表单(因为项目非常大,所以我不想为每个单独的表单编写加载程序的代码,而是想知道如何在全球范围内实现这一功能,如果任何当前启动的表单需要超过10秒的时间,那么它就会显示加载程序(如果启动时所有表单都需要10秒以上的时间来编写代码以显示在每个表单上,则应该适用于这些表单),并在表单出现时停止加载程序。

如何实现这两个功能

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

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

  1. 制作一个基类并实现。

    1. a。编写一个名为DataLoaded之类的标志
    2. b。编写一个名为OutOfTime的标志
    3. c。动态创建要显示的加载程序所需的控件
  2. 在基类中使用Timer(有三种不同的定时器,请明智选择),并在X秒内调用一个方法
  3. 加载数据时如果!OutOfTime将DataLoaded设置为true,否则关闭/隐藏加载程序,以防它在下一步中显示
  4. 当调用Timer的事件/方法时,检查是否加载了数据,如果没有,则意味着在那X秒内,它们仍在处理,因此显示/调用/显示加载程序

只是一个想法,一开始可能不会奏效,但这或多或少是我会做的:)

最新更新