Bài viết phổ biến của tác giả
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Từ wikibook在 F# 上有一小部分它说:
What does let! do?#
let!
runs anasync<'a>
object on its own thread, then it immediately releases the current thread back to the threadpool. Whenlet!
returns, execution of the workflow will continue on the new thread, which may or may not be the same thread that the workflow started out on.
let!
/
do!
不管异步对象包含什么(例如
Thread.Sleep()
)以及它是如何启动的(例如
Async.Start
)?
1 Câu trả lời
你觉得这句话的哪一部分令人惊讶?单个异步的部分可以在不同的线程池线程上执行,或者线程池线程必须在每次绑定(bind)时被释放和获取?
如果是后者,那我同意——这听起来不对。看着mã số ,只有少数几个地方在线程池中排队了一个新的工作项(即少数 Async
内部使用 queueAsync
的模块函数)和 Async.SwitchToNewThread
产生一个非线程池线程并在那里运行延续。单独的绑定(bind)似乎不足以切换线程。
然而,声明的精神似乎与前者有关 - 不保证 không đồng bộ
的部分内容 block 将在同一个线程上运行。您运行的确切线程应该被视为实现细节,当您让出控制权并等待某些结果时,您可以确定至少在某些时候您将登陆不同的线程。
关于f# - 让!/做!总是在新线程中运行异步对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30899792/
Tôi là một lập trình viên xuất sắc, rất giỏi!