2011-09-13 109 views
1

此操作只能發生在UI線程上。 有人可以告訴我,我怎麼能在Silverlight如何在Silverlight中執行此代碼?

mydll.classishere.givemestring((x) => 
      { 
       System.Windows.Browser.HtmlPage.Window.Navigate(new Uri(x, UriKind.Relative), "_blank"); 

      }); 
+0

有什麼問題嗎? – ChrisF

+0

你有什麼問題?它只能發生在UI線程上?這不是你能夠「解決」的問題,因爲你正在做一個涉及UI的操作(一個會導致重繪的UI窗口導航)。你不能在後臺執行此操作。你可以做的最多的是在後臺創建URI對象,並將其傳遞給Window.Navigate,但這樣的開銷很小,甚至沒有麻煩。 – Kevek

+0

有人可以告訴我進程然後我的代碼等待進程,然後打開瀏覽器 – user928770

回答

2

使用解決這個問題本次調整翻轉執行回調到UI線程:

mydll.classishere.givemestring((x) => 
{ 
    Deployment.Current.Dispatcher.BeginInvoke(() => 
    { 
      System.Windows.Browser.HtmlPage.Window.Navigate(new Uri(x, UriKind.Relative), "_blank"); 
    } 
} 
相關問題