MonitorDynamicChanges launch multiple times

Oct 4, 2012 at 2:39 PM

Hi,

 

I was using stackdump on my production server to see why there was so much cpu used.

And I found that MonitorDynamicChanges take a lot of thread. As this method is supposed to take only one thread, I'm thinking there may be a bug. Can you tell me if this is a normal behavior ?

 

OS Thread Id:8168  Combres.ChangeMonitor.MonitorDynamicChanges(Combres.ChangeMonitorN/A)  System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(N/A)  System.Threading.ExecutionContext.RunInternal(N/AN/AN/AN/A)  System.Threading.ExecutionContext.Run(N/AN/AN/AN/A)  System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem(N/A)  System.Threading.ThreadPoolWorkQueue.Dispatch()  System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()OS Thread Id:6992  Combres.ChangeMonitor.MonitorDynamicChanges(Combres.ChangeMonitorN/A)  System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(N/A)  System.Threading.ExecutionContext.RunInternal(N/AN/AN/AN/A)  System.Threading.ExecutionContext.Run(N/AN/AN/AN/A)  System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem(N/A)  System.Threading.ThreadPoolWorkQueue.Dispatch()  System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()OS Thread Id:3232  Combres.ChangeMonitor.MonitorDynamicChanges(Combres.ChangeMonitorN/A)  System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(N/A)  System.Threading.ExecutionContext.RunInternal(N/AN/AN/AN/A)  System.Threading.ExecutionContext.Run(N/AN/AN/AN/A)  System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem(N/A)  System.Threading.ThreadPoolWorkQueue.Dispatch()  System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()OS Thread Id:3432  Combres.ChangeMonitor.MonitorDynamicChanges(Combres.ChangeMonitorN/A)  System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(N/A)  System.Threading.ExecutionContext.RunInternal(N/AN/AN/AN/A)  System.Threading.ExecutionContext.Run(N/AN/AN/AN/A)  System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem(N/A)  System.Threading.ThreadPoolWorkQueue.Dispatch()  System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()OS Thread Id:3568  Combres.ChangeMonitor.MonitorDynamicChanges(Combres.ChangeMonitorN/A)  System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(N/A)  System.Threading.ExecutionContext.RunInternal(N/AN/AN/AN/A)  System.Threading.ExecutionContext.Run(N/AN/AN/AN/A)  System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem(N/A)  System.Threading.ThreadPoolWorkQueue.Dispatch()  System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()