2012-01-24 89 views

回答

1

從Silverlight代碼的角度來看,Invoke是同步的 - 直到JavaScript代碼返回,控件纔會返回到Silverlight代碼。很容易看到這一點,因爲Invoke返回一個您可以立即使用的值。

你甚至可以通過ScriptableMember以嵌套的方式在通話期間回撥到從JavaScript Silverlight的(雖然我不建議乒乓來回那樣的!)。

這種同步調用可能是有問題的,不僅僅是爲了響應 - 一些nasty reentrancy issues可能會出現。我建議或者讓您從Silverlight調用的JavaScript代碼儘可能小,或者不能設置計時器來運行一些代碼,以便控件將立即返回到Silverlight,代碼將從JavaScript事件循環中執行(給你實際上是一個異步調用)。