繁体   English   中英

分配的方法作为异步任务 <t> 在C#中

[英]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.

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