Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: .NET
Expertise: Intermediate
Nov 6, 2009

Detect Recursive Calls in Your .NET Code

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
        Return False
    End Function
Michel Posseth
Thanks for your registration, follow us on our social networks to keep up-to-date