void start_object(string name, RezolveFile rez) { if (rezolve.ContainsKey(name)) { rezolve[name].destroy(); rezolve[name].update(); } rezolve[name] = rez; }
void Compile(String name, string file) { var source = new System.IO.FileInfo(file); string ouf = outfile(name, false); var assembly = new System.IO.FileInfo(ouf); if (assembly.Exists && CompareLastWriteTime(source, assembly.LastWriteTimeUtc)) { // take it easy } else { compiled_anything = true; log(String.Format("compiling {0}", ouf)); var result = ReallyCompile(name, file); if (result == null) { return; } } var assm = System.Reflection.Assembly.Load( System.IO.File.ReadAllBytes(ouf)); var rez = new RezolveFile(assm, name, except); if (rez.is_it_valid()) { Action thejam = delegate() { start_object(name, rez); }; lock (queuelock) { queue.Enqueue(thejam); } } }