在项目运行时,在FSI中正确运行的代码无法正确运行

时间:2011-03-17 07:38:44

标签: f#

我是一个F#noob,学习曲线很陡峭,主要是因为不理解为什么事情不起作用。

这是一些简单的代码,用于更新在FSI中工作的进度条(减去App​​lication.Run行)。

open System
open System.Windows.Forms
open System.Drawing
open System.Threading

let form = new Form(TopMost = true, Visible=true)

let pb = new ProgressBar(Minimum = 0, Maximum = 15, Dock = DockStyle.Fill)
form.Controls.Add(pb)

let threadfunc () =
    Thread.Sleep(5000)
    for i = 0 to 15 do
        Thread.Sleep(1000)
        pb.Invoke(Action(fun _ -> pb.Value <- i)) |> ignore

let thread = new Thread(threadfunc)
thread.Start()

[<STAThread>]
do Application.Run(form)

这个相同的代码会绘制一个带有进度条的窗口,当我尝试构建项目并从调试器运行它时,该窗口不会更新然后崩溃。

1 个答案:

答案 0 :(得分:0)

我不确定为什么会这样,但在创建表单之前尝试添加Application.EnableVisualStyles()