Here’s a way you can check whether the current method is recursive. The following method returns True when your application is in a recursive method:
Public Function CheckRecursion() As Boolean Dim myTrace As New System.Diagnostics.StackTrace() 'If stack layer count less 3 , recursion impossible. If myTrace.FrameCount < 3 Then Return False End If Dim mh As System.IntPtr = myTrace.GetFrame(1).GetMethod().MethodHandle.Value For iCount As Integer = 2 To myTrace.FrameCount - 1 Dim m As System.Reflection.MethodBase = myTrace.GetFrame(iCount).GetMethod() If m.MethodHandle.Value = mh Then Return True End If Next Return False End Function