0

我有一个灯开关应用程序需要从它的 WCF Ria 生成 Crystal Report。在开发运行时我能够正确生成而没有错误,但是当我将它推送到发布环境时它会提示错误 - 无效的跨线程访问。

我已经阅读了一些文章,很可能是 Silverlight UI 线程问题

 partial void GenerateReport_Execute()
    {
        try
        {
            GenerateCrystalReport.Load();

            var temp = DataWorkspace.QUMCrystalReportDomainData.GenerateCrystalReport(SearchQuery.SelectedItem.GroupId, sQuarter, sYear, eQuarter, eYear);

            System.Windows.Deployment.Current.Dispatcher.BeginInvoke(delegate()
            {
                var uri = new Uri("C:\\Temp\\ReportTest.pdf", UriKind.RelativeOrAbsolute);

                if (AutomationFactory.IsAvailable)
                {
                    var shell = AutomationFactory.CreateObject("Shell.Application");

                    shell.ShellExecute(uri.ToString());

                }
                else if (!System.Windows.Application.Current.IsRunningOutOfBrowser)
                {
                    HtmlPage.Window.Navigate(uri, "_blank");
                }
                else
                {
                    throw new InvalidOperationException();
                }
            });
        }
        catch ( Exception ex)
        {
            MessageBox.Show(ex.ToString());                
        }

    }

我做错了吗?请帮我确定这一点。

提前致谢

山姆

4

1 回答 1

0

回答我的问题,基本上底部的消息框导致 UI 问题。

Lightswitch 的调度程序与 wpf 的调度程序不同(该消息框使用什么),如果我错了,请更正

于 2012-04-24T02:26:29.050 回答