Vb.net 在后台轻松运行函数

Vb.net 在后台轻松运行函数,vb.net,multithreading,Vb.net,Multithreading,我有一个应用程序,它使用一些外部脚本来读写媒体文件中的信息。有些操作需要几秒钟,因此我想在应用程序中实现一个等待/加载屏幕。我有大约8种不同的功能来执行各种任务,我希望在后台运行所有这些功能,以便GUI在运行时保持响应 我知道我可以使用System.Threading遍历并使所有这些函数使用后台线程。但是,我的所有函数都采用不同的参数并返回不同的数据类型,处理所有参数和返回值将是一件非常痛苦的事情。更不用说,在函数只运行几秒钟的情况下,使用线程,似乎有些过分了 例如,下面是我的几个函数声明: P

我有一个应用程序,它使用一些外部脚本来读写媒体文件中的信息。有些操作需要几秒钟,因此我想在应用程序中实现一个等待/加载屏幕。我有大约8种不同的功能来执行各种任务,我希望在后台运行所有这些功能,以便GUI在运行时保持响应

我知道我可以使用
System.Threading
遍历并使所有这些函数使用后台线程。但是,我的所有函数都采用不同的参数并返回不同的数据类型,处理所有参数和返回值将是一件非常痛苦的事情。更不用说,在函数只运行几秒钟的情况下,使用
线程
,似乎有些过分了

例如,下面是我的几个函数声明:

Public Function GetMetadata(FilePath As String, Optional ShowErrors As Boolean = True, Optional ByRef ProcOutput As String = "") As Dictionary(Of String, String)
    ...
End Function


Public Function GetDuration(FilePath As String, Optional ShowErrors As Boolean = True, Optional ByRef ProcOutput As String = "") As TimeSpan
    ...
End Function


Public Function WriteMetadata(SourceFilePath As String, Metadata As Dictionary(Of String, String), Optional ShowErrors As Boolean = True, Optional ByRef ProcOutput As String = "") As Boolean
    ...
End Function

基本上,我想问的是:在后台运行这些函数以使我的GUI保持响应的最佳/最简单的方法是什么?

如果您只想在不冻结UI的情况下执行这些方法,那么您应该考虑使用
Async
wait
。如果您想在它们执行时实际显示等待对话框,那么我建议您查看。