VB.NET中如何在不使用Await的情况下启动异步方法调用?

2026-05-08 11:543阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计451个文字,预计阅读时间需要2分钟。

VB.NET中如何在不使用Await的情况下启动异步方法调用?

窗口商店应用程序需要具备在应用启动时调用的长时间运行方法,但不需要等待其完成。我希望它作为后台任务运行。如果转到应用的某个部分(如报告),那么我将检查并确保它已及时完成。

窗口商店应用程序具有我需要在应用程序启动时调用的长时间运行方法,但我不需要等待它完成.我希望它作为后台任务运行.如果转到应用程序的某个部分(报告),那么我将检查并在必要时等待该任务.

Public Shared Async Function UpdateVehicleSummaries(p_vehicleID As Int32) As Task(Of Boolean) Dim tempVehicle As Koolsoft.MARS.BusinessObjects.Vehicle For Each tempVehicle In Vehicles If p_vehicleID = 0 Or p_vehicleID = tempVehicle.VehicleID Then UpdateVehicleStats(tempVehicle) End If Next Return True End Function

它被称为这样

Dim updateTask As Task(Of Boolean) = UpdateVehicleSummaries(0)

它没有Await调用,我得到它将同步运行的警告.我如何启动这样的东西并让它以异步方式运行?我希望它在自己的线程/任务上运行而不会阻塞接口线程.有任何想法吗?

VB.NET中如何在不使用Await的情况下启动异步方法调用?

感谢名单!

你应该在你的函数中运行代码,然后你可以从它返回:

Public Shared Function UpdateVehicleSummaries(p_vehicleID As Int32) As Task(Of Boolean) Return Task.Factory.StartNew(Of Boolean)( Function() Dim tempVehicle As Koolsoft.MARS.BusinessObjects.Vehicle For Each tempVehicle In Vehicles If p_vehicleID = 0 Or p_vehicleID = tempVehicle.VehicleID Then UpdateVehicleStats(tempVehicle) End If Next Return True End Function) End Function

然后,您可以按照建议调用您的函数:

Dim updateTask As Task(Of Boolean) = UpdateVehicleSummaries(0)

稍后,您可以在需要结果时等待任务完成:

Dim result = Await updateTask

本文共计451个文字,预计阅读时间需要2分钟。

VB.NET中如何在不使用Await的情况下启动异步方法调用?

窗口商店应用程序需要具备在应用启动时调用的长时间运行方法,但不需要等待其完成。我希望它作为后台任务运行。如果转到应用的某个部分(如报告),那么我将检查并确保它已及时完成。

窗口商店应用程序具有我需要在应用程序启动时调用的长时间运行方法,但我不需要等待它完成.我希望它作为后台任务运行.如果转到应用程序的某个部分(报告),那么我将检查并在必要时等待该任务.

Public Shared Async Function UpdateVehicleSummaries(p_vehicleID As Int32) As Task(Of Boolean) Dim tempVehicle As Koolsoft.MARS.BusinessObjects.Vehicle For Each tempVehicle In Vehicles If p_vehicleID = 0 Or p_vehicleID = tempVehicle.VehicleID Then UpdateVehicleStats(tempVehicle) End If Next Return True End Function

它被称为这样

Dim updateTask As Task(Of Boolean) = UpdateVehicleSummaries(0)

它没有Await调用,我得到它将同步运行的警告.我如何启动这样的东西并让它以异步方式运行?我希望它在自己的线程/任务上运行而不会阻塞接口线程.有任何想法吗?

VB.NET中如何在不使用Await的情况下启动异步方法调用?

感谢名单!

你应该在你的函数中运行代码,然后你可以从它返回:

Public Shared Function UpdateVehicleSummaries(p_vehicleID As Int32) As Task(Of Boolean) Return Task.Factory.StartNew(Of Boolean)( Function() Dim tempVehicle As Koolsoft.MARS.BusinessObjects.Vehicle For Each tempVehicle In Vehicles If p_vehicleID = 0 Or p_vehicleID = tempVehicle.VehicleID Then UpdateVehicleStats(tempVehicle) End If Next Return True End Function) End Function

然后,您可以按照建议调用您的函数:

Dim updateTask As Task(Of Boolean) = UpdateVehicleSummaries(0)

稍后,您可以在需要结果时等待任务完成:

Dim result = Await updateTask