I am using this code where I am invoking the run
method of a List of classes that I loaded dynamically from dlls:
for (int i = 0; i < robotLi
Have a look at this sample for one way of doing it:
using System;
using System.Threading;
using System.Reflection;
using System.Collections.Generic;
namespace Obfuscation
{
public class Program
{
static Type[] robotArray = new Type[] { typeof(Program) };
static List robotList = new List(robotArray);
internal void Run()
{
Console.WriteLine("Do stuff here");
}
internal static void RunInstance(object threadParam)
{
Type t = (Type)threadParam;
object o = Activator.CreateInstance((Type)t);
t.InvokeMember("Run", BindingFlags.InvokeMethod | BindingFlags.Instance | BindingFlags.NonPublic, null, o, null);
}
public static void Main(string[] args)
{
for (int i = 0; i < robotList.Count; i++)
{
ThreadPool.QueueUserWorkItem(new WaitCallback(RunInstance), robotList[i]);
}
}
}
}