示例#1
0
 // 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);
     }
 }
示例#2
0
        /// <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);
            }
        }