// Ottaa resolvatun scriptin sisään ja scriptbuilderin jota käytettiin resolvauksessa. // Suorittaa scriptin callback metodin. private void ExecuteCallback(ParallelScriptBuilder parallelScriptBuilder, IScript script) { if (parallelScriptBuilder.ScriptResolvedCallback != null) { parallelScriptBuilder.ScriptResolvedCallback(script, parallelScriptBuilder); } }
/// <summary> /// Ilmoittaa että scripti tulisi kääntää uusiksi. /// </summary> public void Notify(ScriptEngine scriptEngine) { // Kääntää scriptin rinnakkain. if (IsParallel) { ParallelScriptBuilder myParallelBuilder = ScriptBuilder as ParallelScriptBuilder; ParallelScriptBuilder parallelScriptBuilder = new ParallelScriptBuilder( myParallelBuilder.ScriptName, myParallelBuilder.ClassName, myParallelBuilder.ScriptArguments, myParallelBuilder.DepencyObject, (script, builder) => { // Kutsutaan alkuperäisen builderin callback jos sellainen on // ja samalla otetaan uusi scripti kiinni lopussa. if (myParallelBuilder.ScriptResolvedCallback != null) { myParallelBuilder.ScriptResolvedCallback(script, builder); } this.script = (T)script; }); } else { // Kääntää scriptin blokkaavasti. script = scriptEngine.GetScript <T>(ScriptBuilder); } }