2011-06-30 78 views
0

我的應用程序將從DB創建一個Excel,創建一個Excel文件需要幾分鐘的時間,直到那時用戶不想等待Excel完成,他應該開始使用應用程序。一旦excel完成,應用程序應該發出消息說'報告成功'。vb.net寫作背景多線程

任何人都可以告訴我如何做到這一點,whtr後臺線程會幫助我嗎?

如果是請給我提供了一些樣品,新手線程....

回答

1

這取決於你對Excel創建過程中做什麼。

創建和控制後臺線程的一種非常簡單而有效的方法是使用BackgroundWorker。

它非常easyimplement

而且這thread safe

你可以找到一個工作的例子,我已經準備(BackgroundWorkerDoStuff)。

+0

LeftyX,謝謝你的回覆。我沒有在Excel中做任何事情,只是將數據從DB複製到Excel單元格和簡單的格式。我在這裏做的是,trd =新線程(AddressOf ExportToExcel)trd.IsBackground = True'MainForm.Instance.mnuExit.Enabled = False'MainForm.Instance.ControlBox = False trd.Start現在新線程trd開始工作爲excel罰款,但我想殺死線程'trd'後excel操作完成,並希望訪問主窗體控件?當我試圖它會拋出一些錯誤消息'圓形線程引用錯誤'。 – SunVigna

+0

@ user809244:我建議你不要使用它來訪問或更改你的GUI。它不是線程安全的。我會更新我的答案。 – LeftyX

+0

@ LeftyX-工作,但我有問題的進度條。進度條應根據創建excel所花費的時間進行。請告訴我,我在你的代碼中調用方法ExportToExcel()。 – SunVigna