这是我迄今为止尝试过的:
放入
button.Visible = false
我的表单的初始化程序并放入button.Visible = true
我的 backgroundWorkers 的 DoWork 事件的末尾。
这会导致程序在 BackgroundWorker 完成工作后冻结。
我不明白为什么。放入
button.Visible = false
我的表单的初始化程序并button.Visible = true
在我backgroundWorker1.RunWorkerAsync()
调用之后放入。
这不能正常工作,因为它在 BackgroundWorker 开始工作后立即显示按钮。
我明白为什么会这样。- 将
button.Visible = false
anddoneEvent = new AutoResetEvent(false)
放入表单的初始化程序中,然后在我的调用之后放入doneEvent.WaitOne()
and 。 这样,除了我在表单中的 ProgressBar 停止正常工作(在所有工作完成之前它不会显示进度)之外,一切正常。 我可能对为什么会发生这种情况有一个直观的想法,但我并不真正理解它,也不知道如何解决它。button.Visible = true
backgroundWorker1.RunWorkerAsync()