True, but according to his exception stack it never gets there ... it throws on the "runtime = DynamicEngine.CreateRuntime(true);" line. It throws because somewhere in that method it doesn't dispatch to the UI thread as you described. Those are the fixes I need to do.
~Jimmy 2010/8/17 Dave Curylo <cury...@asme.org> > Lukas, > > I think the problem is the RunWorkerCompleted handler trying to update the > UI. Wrap calls from a background thread to update UI controls in something > like this so the Dispatcher updates any controls on the UI thread: > > this.Dispatcher.BeginInvoke(() => > { > this.textBlock1.Text = "IronPython loaded"; > }); > > Hope that helps. > > -Dave > > 2010/8/17 Lukas Cenovsky <cenov...@bakalari.cz> > > 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áš >> >> _______________________________________________ >> Users mailing list >> Users@lists.ironpython.com >> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com >> > > > _______________________________________________ > Users mailing list > Users@lists.ironpython.com > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > >
_______________________________________________ Users mailing list Users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com