2011-09-13 16 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"); 
    } 
} 
関連する問題