2012-04-18 31 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的調度程序(該消息箱使用的是什麼)不同,請糾正,如果我錯了

相關問題