public void RunProfile(string name, string listFile)
        {
            profileNode node = GetNode(name);

            if (node != null)
            {
                Type t = Type.GetType(internalList[node]);
                InternalProfileBase c = Activator.CreateInstance(t) as InternalProfileBase;
                c.CheckIfAvailable();
                progressInfo = c;
                c.RunThreads(listFile);
                progressInfo = null;
                progress++;
            }
        }
        public static List <InternalProfileBase> InitProfiles()
        {
            //Type[] types = GetLoadableTypes(Assembly.GetExecutingAssembly());
            //Type[] types = Assembly.GetExecutingAssembly().GetTypes();
            Type [] types;
            List <InternalProfileBase> myTypes = new List <InternalProfileBase>();

            if (Assembly.GetExecutingAssembly() == null)
            {
                throw new ArgumentNullException("Assembly cannot be readed");
            }
            try
            {
                types = Assembly.GetExecutingAssembly().GetTypes();
            }
            catch (ReflectionTypeLoadException e)
            {
                types = e.Types;
            }


            RemoveProfilesFile();
            foreach (Type t in  types)
            {
                if (t != null && t.IsSubclassOf(typeof(InternalProfileBase)))
                {
                    try
                    {
                        InternalProfileBase c = Activator.CreateInstance(t) as InternalProfileBase;
                        c.CheckIfAvailable();
                        myTypes.Add(c);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex);
                    }
                }
            }
            return(myTypes);
        }