Самый простой способ - использовать анонимный метод или лямбда-выражение:
string path = ...;
Thread thread = new Thread(() => MyMethod(path));
thread.Start();
Вы можете использовать ParameterizedThreadStart
, но я бы вообще не стал.
Обратите внимание, что если вы делаете это в цикле, вам нужно знать о нормальном «закрытии по переменной цикла» опасность:
// Bad
foreach (string path in list)
{
Thread thread = new Thread(() => MyMethod(path));
thread.Start();
}
// Good
foreach (string path in list)
{
string copy = path;
Thread thread = new Thread(() => MyMethod(copy));
thread.Start();
}