示例#1
0
 void start_object(string name, RezolveFile rez)
 {
     if (rezolve.ContainsKey(name))
     {
         rezolve[name].destroy();
         rezolve[name].update();
     }
     rezolve[name] = rez;
 }
示例#2
0
    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);
            }
        }
    }