大佬教程收集整理的这篇文章主要介绍了Silverlight HttpWebRequest.Create挂起在异步块中,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
let uri = new Uri(queryUrl) // this is the line that hangs let request : httpWebrequest = downcast Webrequest.Create(uri) request.Method <- httpR_132_11845@ethod; request.ContentType <- contentType
这可能是一个沙箱问题,因为我的silverlight是从我的文件系统中提供的,Uri是对本地主机的引用 – 尽管我甚至没有得到例外.思考?
谢谢
更新1
我创建了一个新项目并移植了我的代码,现在它正在运行;某些东西必须是不稳定的,但是关于F#Silverlight集成仍然存在.仍然会欣赏在旧模型中调试“挂”网络创建的想法…
更新2
let uri = Uri("http://localhost./portal/main?isSecure=IbongAdarnaNiFranciscoBalagtas") // this Webrequest.Create works fine let req : httpWebrequest = downcast Webrequest.Create(uri) let Login = async { let uri = new Uri("http://localhost/portal/main?isSecure=IbongAdarnaNiFranciscoBalagtas") // code hangs on this Webrequest.Create let request : httpWebrequest = downcast Webrequest.Create(uri) return request } Login |> Async.RunSynchronously
我一定是缺少一些东西异步块在控制台应用程序中工作正常 – 在Silverlight应用程序中是不允许的?
问题是Async.RunSynchronously.当在UI线程上调用时,这将阻止UI线程.事实证明,Silverlight上的Webrequest.Create()会调度到UI线程.所以这是一个僵局.
一般来说,尽量避免在Silverlight(或任何UI线程)上Async.RunSynchronously.在这个例子中可以使用Async.StartImmediate.或者,我认为您可以从任何后台线程调用RunSynchronously没有问题. (我还没有尝试过足够的端到端Silverlight场景来提供更多的建议,您可以退房
Game programming in F# (with Silverlight and WPF)
几个简短的例子.)
(回想起来,F#设计团队认为,我们可能不应该将Async.RunSynchronly并入Silverlight的FSharp.Core中;该方法可能会违反平台的精神(无阻塞调用),可能我们将弃用该方法未来的Silverlight版本;另一方面,它仍然在Silverlight上具有cpu密集并行性的有效用途,例如在后台线程上并行运行一堆(非IO)代码).
以上是大佬教程为你收集整理的Silverlight HttpWebRequest.Create挂起在异步块中全部内容,希望文章能够帮你解决Silverlight HttpWebRequest.Create挂起在异步块中所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。