0

我有一个函数应用程序,里面有几个定时器触发的函数。正常运行时,其中一些会收集数据并将其存储在内存中的静态类变量中,其他函数将使用这些数据。例如, FuncA每 10 分钟运行一次,在内存中填充/刷新数据源 X,FuncB每 5 分钟运行一次,并使用存储在 X 中的任何数据。

在启动时,我需要FuncA运行,以便在 X 中有数据供FuncB使用。我希望FuncB之后立即运行(例如延迟 10 秒)。如果我将这两个函数都设置为RunOnStartup = true,则FuncB将在FuncA有时间填充数据之前运行。我可以让FuncB检查数据是否在 X 中,如果不存在则跳过该迭代,但是我必须等待 5 分钟才能再次执行。我可以在FuncBSystem.Threading.Thread.Sleep(1000)的开头使用并将其设置为在启动时运行,这将为FuncA暂停执行足够长的时间填充数据,但是我的函数每次执行时都会有一个愚蠢的、毫无意义的 10 秒暂停,只是因为我第一次执行时需要它。

我的问题是:有没有办法将FuncB设置为在启动后 10 秒开始执行,但在那之后又回到它通常的执行计划?

4

0 回答 0