[英]Assigned methods as async Task<t> in c#
您好我有一个问题:分配为异步Task方法将自动创建一个新Task,然后将方法中的代码运行到刚刚创建的新任务中,例如,假设我在一个方法中有一个post方法webapi2像这样:
public async Task<IHttpActionResult> Post([FromBody]Menu m)
{
using (MySqlConnection con = new MySqlConnection(""))
using (MySqlCommand cmd = new MySqlCommand("Insert into Menu (Description,LanguageId,IsActive) values (@Description,@LanguageId,@IsActive) ", con))
{
try
{
if (con.State == ConnectionState.Closed)
{
await con.OpenAsync();
cmd.Parameters.AddWithValue("@Description", m.Description);
cmd.Parameters.AddWithValue("@LanguageId", m.LanguageId);
cmd.Parameters.AddWithValue("@IsActive", m.IsActive);
await cmd.ExecuteNonQueryAsync();
}
}
catch (MySqlException ex)
{
return Content(HttpStatusCode.NotFound,ex);
}
finally
{
await con.CloseAsync();
}
return Ok("Inserted Succesfully");
}
}
我将使用我的应用程序中的HttpClient将该方法称为awaitable。我应该使用
Task.Run( () =>
{
//database code
});
要在post方法内部启动任务,还是在方法指定为Task时立即启动任务?我只是想更好地了解异步方法。 谢谢!
我应该使用
Task.Run
在post方法内部启动任务,还是在方法指定为Task时立即启动任务?
在async
方法中, async
关键字控制为您创建Task对象。 您不需要创建另一个。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.