我是一个天蓝色的webjob,其中有一个由天蓝色队列触发的功能
public class Functions
{
public static void ProcessQueueMessage([QueueTrigger("scannedcodes")] string message, TextWriter log)
{
// do something
}
}
在此应用程序中,还有一个间隔为5分钟的计时器。当触发计时器的Elapsed事件时,我需要在事件处理程序中执行某些操作,该事务处理程序需要队列触发的方法未运行。
真正的问题是队列触发器运行16个并行线程,因此每个线程都可以处理队列消息。所以我需要所有线程都没有运行来执行定时器事件处理程序的代码。
答案 0 :(得分:0)
我将看看Interlocked Increment和Decrement方法,以保持活跃进程的总计。在方法的第一行,调用Increment,在最后一行调用Decrement。当计时器事件触发时,检查计数器的当前值,并等待它为0或什么都不做。
https://msdn.microsoft.com/en-us/library/system.threading.interlocked_methods(v=vs.110).aspx