VB.NET 的 后台线程(主线程)如何让它所属的主线程执行一个方法或事件(可以再附加分)

来源:百度知道 编辑:UC知道 时间:2024/06/10 08:07:36
.NET Framework 中有这样一个 BackgroundWorker 控件。相对于 System.Threading.Thread 类,使用 BackgroundWorker 控件实现多线程操作要相对简单。

BackgroundWorker 控件中有一个 ProgressChanged 方法。这个方法可以在控件实现的后台线程的任何时候向主线程传递数据并触发一个 ProgressChanged 事件。传送的数据有 2 个参数,一个是 Object 类型,另外一个是 Int32 类型。

ProgressChanged 事件的过程是在主线程中运行的,因此它能够对主线程创建的对象进行任意访问。通常在 ProgressChanged 事件中补充显式的修改语句让用户了解后台进程的运行情况,例如进度和任务单项文字等。

我现在想写一个类似的程序,最大的问题是不知道怎样在后台线程中让前台线程执行一个方法或触发一个事件并且能够传递 Object 类型的参数。请高手赐教.........谢谢!!
==========
“tonnychenfd”你不要太天真了,如果这么简单就能够解决的话就不用搞这么多东西,甚至连 Windows 这样的多任务系统都不需要了。

你是不说有ProgressChanged事件么,那么就在这个事件中来进行啊!

可以让前台线程监视一个变量,由后台线程去改变这个变量,有时要注意跨线程访问变量需要托管。

其实最简单的方法是设置一个全局的变量,然后加一个timer,不停显示最新的变量值