public static void DoWork(object data) { OracleDataImport odi = (OracleDataImport)data; ImportLock.WaitOne(); odi.ImportTable(); ImportLock.Release(); }
public void Run() { List <Landing_Table> import_tables = repo.GetLandingTables(); tasks.Clear(); di_execution execution_log = repo.NewExecution("Oracle data import"); foreach (Landing_Table table in import_tables) { OracleDataImport odi = new OracleDataImport(table, execution_log.execution_id, repo); tasks.Add(Task.Factory.StartNew(() => DoWork(odi))); } Task.WaitAll(tasks.ToArray()); execution_log.status = "Finished"; repo.Update(execution_log); }