[IronPython] Hosting IronPython in Silverlight - background loading

Lukas Cenovsky cenovsky at bakalari.cz
Tue Aug 17 23:41:00 CEST 2010


  Hi all,
is it possible to load IronPython engine in the background thread in 
Silverlight?

I tried to load it via BackgroundWorker:

private void UserControl_Loaded(object sender, RoutedEventArgs ev)
{
     IPloader = new BackgroundWorker();
     IPloader.DoWork += new DoWorkEventHandler((s, e) =>
         {
             runtime = DynamicEngine.CreateRuntime(true); // debug mode true
             engine = runtime.GetEngine("python");
         }
     );
     IPloader.RunWorkerCompleted += new 
RunWorkerCompletedEventHandler((s, e) =>
     {
         this.textBlock1.Text = "IronPython loaded";
     }
     );
     IPloader.RunWorkerAsync();
}

It fails with the following exception:

System.UnauthorizedAccessException was unhandled by user code
   Message=Invalid cross-thread access.
   StackTrace:
        at MS.Internal.XcpImports.CheckThread()
        at 
System.Windows.DependencyObject.GetValueInternal(DependencyProperty dp)
        at System.Windows.Deployment.get_Parts()
        at 
Microsoft.Scripting.Silverlight.DynamicAppManifest.AssemblyParts()
        at Microsoft.Scripting.Silverlight.DynamicAppManifest..ctor()
        at Microsoft.Scripting.Silverlight.DynamicEngine.CreateLangConfig()
        at 
Microsoft.Scripting.Silverlight.DynamicEngine.CreateRuntimeSetup(Boolean 
debugMode)
        at 
Microsoft.Scripting.Silverlight.DynamicEngine.CreateRuntime(Boolean 
debugMode)
        at SLHosting.MainPage.<UserControl_Loaded>b__0(Object s, 
DoWorkEventArgs e)
        at 
System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
        at System.ComponentModel.BackgroundWorker.OnRun(Object argument)
   InnerException:

Thanks for any advice.

--
-- Lukáš




More information about the Ironpython-users mailing list