Я читал Threading внутри класса со статическими и нестационарными методами, и я вхожу в подобную ситуацию.
У меня есть статический метод, который извлекает данные из ресурса и создает некоторые объекты времени выполнения на основе данных.
static class Worker{
public static MyObject DoWork(string filename){
MyObject mo = new MyObject();
// ... does some work
return mo;
}
}
Метод занимает некоторое время (в этом случае он считывает файлы 5-10 Мбайт) и возвращает объект.
Я хочу использовать этот метод и использовать его в ситуации с несколькими потоками, чтобы сразу прочитать несколько файлов. Проблемы с дизайном/рекомендации в сторону, как несколько потоков будут обращаться к этому коду?
Скажем, у меня есть что-то вроде этого...
class ThreadedWorker {
public void Run() {
Thread t = new Thread(OnRun);
t.Start();
}
void OnRun() {
MyObject mo = Worker.DoWork("somefilename");
mo.WriteToConsole();
}
}
Выполняется ли статический метод для каждого потока, что позволяет выполнять параллельное выполнение?