2012-04-18 75 views
0

我有一个lightswitch应用程序需要从它的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());     
     } 

    } 

我这样做是否有误?请帮助我确定这一点。

由于提前

山姆

回答

0

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

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

相关问题