繁体   English   中英

使用TaskFactory调用异步Sub时发生编译器错误

[英]Compiler error when calling async Sub with TaskFactory

以同步方式运行Async调用的辅助方法会引发编译器错误。

VB.NET,VisualStudio 2019,.NET Framework 4.6,链接到编译器错误: https : //docs.microsoft.com/zh-cn/dotnet/visual-basic/misc/bc31143

Private Shared ReadOnly _taskFactory As TaskFactory = New TaskFactory(System.Threading.CancellationToken.None, TaskCreationOptions.None, TaskContinuationOptions.None, TaskScheduler.Default)
Shared Sub RunSync(ByVal func As Func(Of Task))
    _taskFactory.StartNew(func).Unwrap().GetAwaiter().GetResult()
End Sub

呼叫:

CLHelper.RunSync(Sub() test())

方法:

Async Sub test()
    Await doSomethingAsync()
End Sub

CLHelper.RunSync(Sub()test())导致编译器错误BC36680:方法“没有与委托<'delegatename'>兼容的签名

您可以将test方法更改为Function ,以与RunSync调用协调其签名:

Async Function test() As Task
    Await doSomethingAsync()
End Function

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM