小编Mik*_*keZ的帖子

异步/等待的呼叫链...等待等待或返回等待?

给定一个异步方法:

public async Task<int> InnerAsync()
{
    await Task.Delay(1000);
    return 123;
}
Run Code Online (Sandbox Code Playgroud)

并通过中间方法调用它,中间方法是等待异步方法IntermediateA还是只返回任务IntermediateB?

public async Task<int> IntermediateA()
{
    return await InnerAsync();
}

private Task<int> IntermediateB()
{
    return InnerAsync();
}
Run Code Online (Sandbox Code Playgroud)

我可以告诉调试器,两者看起来完全相同,但在我看来,IntermediateB应该通过避免在状态机中再等待一个条目来表现更好.

是对的吗?

c# asynchronous async-await

5
推荐指数
1
解决办法
442
查看次数

使用async/await将现有C#同步方法转换为异步?

从同步I/O绑定方法开始(如下所示),如何使用async/await使其异步?

public int Iobound(SqlConnection conn, SqlTransaction tran)
{
    // this stored procedure takes a few seconds to complete
    SqlCommand cmd = new SqlCommand("MyIoboundStoredProc", conn, tran);
    cmd.CommandType = CommandType.StoredProcedure;

    SqlParameter returnValue = cmd.Parameters.Add("ReturnValue", SqlDbType.Int);
    returnValue.Direction = ParameterDirection.ReturnValue;
    cmd.ExecuteNonQuery();

    return (int)returnValue.Value;
}
Run Code Online (Sandbox Code Playgroud)

MSDN示例都假设存在*Async方法,并且没有为I/O绑定操作自己创建一个指导.

我可以使用Task.Run()并在该新任务中执行Iobound(),但不鼓励创建新任务,因为该操作不受CPU限制.

我想使用async/await,但我仍然坚持这个如何继续转换此方法的基本问题.

.net c# asynchronous async-await

3
推荐指数
1
解决办法
1057
查看次数

System.Text.Json.JsonSerializer.Serialize返回空的Json对象“ {}”

环境:Visual Studio 2019 16.3.8,.NET 3.0.100,.NET Core 3.0单元测试。

下面对System.Text.Json.JsonSerializer.Serialize的所有3个调用都返回空对象:“ {}”

我一定做错了什么...但是我看不到吗?

public class MyObj
{
    public int myInt;
}

[TestMethod]
public void SerializeTest()
{
    var myObj = new MyObj() { myInt = 99 };
    var txt1 = System.Text.Json.JsonSerializer.Serialize(myObj);
    var txt2 = System.Text.Json.JsonSerializer.Serialize(myObj, typeof(MyObj));
    var txt3 = System.Text.Json.JsonSerializer.Serialize<MyObj>(myObj);
}
Run Code Online (Sandbox Code Playgroud)

c# serialization json .net-core

1
推荐指数
1
解决办法
90
查看次数

标签 统计

c# ×3

async-await ×2

asynchronous ×2

.net ×1

.net-core ×1

json ×1

serialization ×1