我是一个F#noob,学习曲线很陡峭,主要是因为不理解为什么事情不起作用。
这是一些简单的代码,用于更新在FSI中工作的进度条(减去Application.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)
这个相同的代码会绘制一个带有进度条的窗口,当我尝试构建项目并从调试器运行它时,该窗口不会更新然后崩溃。
答案 0 :(得分:0)
我不确定为什么会这样,但在创建表单之前尝试添加Application.EnableVisualStyles()
。