新页面异步任务的重载解析失败



我正在尝试在 4.5 Web 窗体 ASP.NET 执行一些异步操作。在以下几个在线教程之后,我收到了此错误:

重载解析失败,因为无法调用可访问的"New" 有了这些参数:

'public sub new(handler as system.func(of system.threading.CancelToken, System.Threading.Tasks.Task((': 类型为"System.Threading.Tasks.Task"的值不能转换为 'System.Func(of System.Threading.CancelToken, System.Threading.Tasks.Task('。

'public sub new(handler as System.func(of System.Threading.Tasks.Task((':类型的值 "System.Threading.Tasks.Task"不能转换为"System.Func(Of System.Threading.Tasks.Task("。

下面是代码(类似于本教程(:

Imports System.Threading.Tasks
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
     RegisterAsyncTask(New PageAsyncTask(DoStuffAsync))
     ' etc...
End Sub
Private Async Function DoStuffAsync() As Task
    Await SomeTask()
End Function

这是解决方案中唯一的错误。据我所知,这正是教程中的内容(从 C# 翻译而来(。我确实在 MSDN 文档中注意到PageAsyncTask对事件处理程序使用了几个附加参数(需要额外的代码(,但我在线阅读的所有教程都避开了这些参数,只放置了函数名称 ( Func(Of Task) (。我错过了什么?

这是一个示例,其中用户仅使用方法名称(并传递方法的参数(。

在 C# 中,只需使用方法名称将函数委托作为参数传递即可。 在 VB.NET 中,您需要使用 AddressOf 运算符来传递委托。 例如

RegisterAsyncTask(New PageAsyncTask(AddressOf DoStuffAsync))

最新更新