Vb.net 从异步任务中检索int值
我在一个单独的项目中有一个异步任务,我需要从另一个项目调用它,但我不知道如何完成它 异步方法是Vb.net 从异步任务中检索int值,vb.net,asynchronous,task,Vb.net,Asynchronous,Task,我在一个单独的项目中有一个异步任务,我需要从另一个项目调用它,但我不知道如何完成它 异步方法是 public async Task<int> InsertNewPasswordResetRequest(UserPasswordReset upr) { string commandText = "Insert Into passwordresetrequests (reset_username, ResetToken, ResetRequestTime, R
public async Task<int> InsertNewPasswordResetRequest(UserPasswordReset upr)
{
string commandText = "Insert Into passwordresetrequests (reset_username, ResetToken, ResetRequestTime, ResetRequestTimeout) values(@username,@rt,@rrt,@rrtout);";
var parameters = new Dictionary<string, object>() {
{ "@username", upr.ResetUsername },
{ "@rt", upr.ResetToken },
{ "@rrt", upr.ResetRequestTime },
{ "@rrtout", upr.ResetRequestTimeout }
};
return await Task.FromResult( _database.Execute(commandText, parameters, false));
}
我知道它会返回一个任务,但是如何从中提取int值呢?如果要异步运行任务,可以等待任务的完成
Dim success As Integer = Await prr.InsertNewPasswordResetRequest(upr)
或以同步方式运行任务
Dim success As Integer = prr.InsertNewPasswordResetRequest(upr).Result
如果希望异步运行任务,则可以等待任务完成
Dim success As Integer = Await prr.InsertNewPasswordResetRequest(upr)
或以同步方式运行任务
Dim success As Integer = prr.InsertNewPasswordResetRequest(upr).Result
建议的方法是等待InsertNewPasswordResetRequest方法的结果。还可以对返回的任务调用Result属性,但如果在同步上下文中执行,则可能会导致代码阻塞
int result=wait InsertNewPasswordResetRequest
另一个注意事项:不需要在该方法中等待Task.FromResult。只需从方法签名和wait关键字中删除异步修饰符,然后直接返回Task.FromResult
另一个注意事项:如果可能的话,考虑不必执行任何异步代码,就要完整地插入NeXPaseWordReStestRealEnter非Acyc。 编辑VB.NET调用代码:
Dim result As Integer=Wait InsertNewPasswordResetRequest…建议的方法是等待InsertNewPasswordResetRequest方法的结果。还可以对返回的任务调用Result属性,但如果在同步上下文中执行,则可能会导致代码阻塞 int result=wait InsertNewPasswordResetRequest 另一个注意事项:不需要在该方法中等待Task.FromResult。只需从方法签名和wait关键字中删除异步修饰符,然后直接返回Task.FromResult另一个注意事项:如果可能的话,考虑不必执行任何异步代码,就要完整地插入NeXPaseWordReStestRealEnter非Acyc。 编辑VB.NET调用代码:
Dim result As Integer=Wait InsertNewPasswordResetRequest…我想他想要VB.NET中的答案,尽管他没有标记。啊,对不起。问题被标记为C,所以。。。我会更新我的答案。我想他想要VB.NET中的答案,尽管他没有标记。啊,对不起。问题被标记为C,所以。。。我将更新我的答案。您正在调用的函数不异步运行:您正在调用的函数不异步运行:谢谢,我知道它不起作用的原因是我必须使父函数异步。Result属性不只是异步执行代码。调用Result属性可能导致代码阻塞。关于这个主题,这里有一篇很棒的帖子:@NathanAldenSr你可以稍微专注一点,读一下短语,或者同步执行任务。哎呀,我有个打字错误。我的意思是,结果并不是简单地同步执行代码。所以我不想编辑原始评论:@NathanAldenSr哎呀,我也打错了。我没有删除“复制/粘贴后等待”。谢谢,我知道它不起作用的原因是我必须使父函数异步。Result属性不只是异步执行代码。调用Result属性可能导致代码阻塞。关于这个主题,这里有一篇很棒的帖子:@NathanAldenSr你可以稍微专注一点,读一下短语,或者同步执行任务。哎呀,我有个打字错误。我的意思是,结果并不是简单地同步执行代码。所以我不想编辑原始评论:@NathanAldenSr哎呀,我也打错了。复制/粘贴后我尚未删除等待。