private Enums.AsyncDetected DetectCPUAsynchronousUsages(InvocationExpressionSyntax methodCall, IMethodSymbol methodCallSymbol)
        {
            var methodCallName = methodCall.Expression.ToString().ToLower();

            // DETECT CPU-BOUND ASYNC CALLS
            if (methodCallSymbol.IsThreadStart())
                return Enums.AsyncDetected.Thread;
            else if (methodCallSymbol.IsThreadPoolQueueUserWorkItem())
                return Enums.AsyncDetected.Threadpool;
            else if (methodCallSymbol.IsAsyncDelegate())
                return Enums.AsyncDetected.AsyncDelegate;
            else if (methodCallSymbol.IsBackgroundWorkerMethod())
                return Enums.AsyncDetected.BackgroundWorker;
            else if (methodCallSymbol.IsTaskCreationMethod())
                return Enums.AsyncDetected.Task;
            else if (methodCallSymbol.IsParallelForEach())
                return Enums.AsyncDetected.ParallelForEach;
            else if (methodCallSymbol.IsParallelFor())
                return Enums.AsyncDetected.ParallelFor;
            else if (methodCallSymbol.IsParallelInvoke())
                return Enums.AsyncDetected.ParallelInvoke;
            else
                return Enums.AsyncDetected.None;
        }