2011-06-30 44 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