public static void Main(string[] args) { ReadFile reader = new ReadFile(); Scene scene; if (args.Length != 1) { Console.Error.WriteLine("Le lecteur de fichier de scène attend un fichier exactement !!"); System.Environment.Exit(1); } try { int nbThread = Environment.ProcessorCount; //ManualResetEvent[] doneEvents = new ManualResetEvent[nbThread]; Thread[] jobs = new Thread[nbThread]; scene = reader.Analyze(args[0]); /* * ///Application des transformations aux triangles * if (scene.Transformation.Count > 0) * { * for (int i = 0; i < scene.Entite.Count; i++) * scene.Entite[i] = scene.Entite[i].getTransform(scene.Transformation[0]); * } */ //Initialisation du lanceur et génération de l'image. Lanceur lanceur = new Lanceur(scene); for (int i = 0; i < nbThread; i++) { WorkData data = new WorkData(i, nbThread); jobs[i] = new Thread(() => lanceur.GenerateImage(data)); jobs[i].Start(); } for (int i = 0; i < nbThread; i++) { jobs[i].Join(); } } catch (IOException e) { Console.WriteLine("Le fichier de sortie n'à pas pu être enregistré !!!"); Console.Error.WriteLine(e.Message); System.Environment.Exit(1); } catch (ArgumentException f) { Console.WriteLine(f.Message); System.Environment.Exit(1); } catch (FormatException) { Console.WriteLine("Un ou plusieurs arguments ne sont pas des nombres !!!"); System.Environment.Exit(1); } }