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