[IronPython] Hosting IronPython in Silverlight - background loading
Jimmy Schementi
jimmy at schementi.com
Wed Aug 18 05:05:25 CEST 2010
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 <curylod at 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 <cenovsky at 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 at lists.ironpython.com
>> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>>
>
>
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20100817/e3e8918d/attachment.html>
More information about the Ironpython-users
mailing list