public static void ThreadRun(string typeName, string methodName, ThreadControl tc, Object instance = null, object[] parameters = null)
        {
            List <object> p = new List <object>();

            if (parameters != null)
            {
                p.AddRange(parameters);
            }

            p.Add(tc);

            tc.BeforeExecute();
            //try
            //{
            Type.GetType(typeName).GetMethod(methodName).Invoke(instance, p.ToArray());
            //}
            //catch (Exception e)
            //{
            //    Console.WriteLine("EXCEPTION EXCEPTION EXCEPTION EXCEPTION EXCEPTION EXCEPTION");
            //   Console.WriteLine(e.Message);
            //}

            tc.AfterExecute();
        }