2011-06-14 72 views
1

我正在学习F#并对此语言非常感兴趣F#异步线程问题

我尝试创建异步表达式以异步运行。

例如

let prop1=async{ 
    for i=0 to 1000000 do () 
     MessageBox.Show("Done") 
    } 

let prop2=async{ 
    for i=0 to 1000000 do () 
     MessageBox.Show("Done2") 
    } 

Async.Start(prop1) 
Async.Start(prop2) 

当我运行该程序,我得到有螺纹量程序处理量的增加,从6到8,当我完成接近2消息框,则处理似乎并不破坏那些创建线程,也记8,发生了什么事或我有误解有关F#异步

感谢您的帮助

回答

0

运行时可能会使用一个线程池,即线程没有被破坏,而是等待另一个异步任务。该技术可帮助运行时减少开始新异步的时间。操作,因为创建新线程可能会消耗一些时间和资源。