You can't. Thread.Start()
only accepts one parameter of type object
. But you could for instance pass a custom object or a dictionary instead
Object:
class ThreadParameters {
public string p1 {get;set;}
public string p2 {get;set;}
}
static void appUpdater(object p) {
ThreadParameters tp = p as ThreadParameters;
}
Thread wms = new Thread(new ParameterizedThreadStart(appUpdater));
wms.Start(new ThreadParameters{p1="p1", p2= "p2"});
Dictionary:
static void appUpdater(object p) {
Dictionary<string, object> tp = p as Dictionary<string, object>;
}
Thread wms = new Thread(new ParameterizedThreadStart(appUpdater));
wms.Start(new Dictionary<string, object>{{"p1", "p1"}, {"p2", "p2}});
But depending on what your needs are, a Task
may be the better way.