0

我有这个简单的代码

static string ParentMethod()
{
1    var response = ChildMethod("param1")
2    string value = response.Result;
3
4    return value;
}

static async Task<string> ChildMethod(string param1)
{
1    string value = "";
2
3    var response = await Task.Run(() => SomeAPIDLL.SendSsMessage(param1));
4
5    if (response.RestExcpetion != null)
6       value = response.RestException.Message;
7
8    return value;
}

不知道为什么,但是在 ChildMethod 上,在 Task.Run 之后,调试器立即指向 ParentMethod 第 2 行,此时它执行调用(因为我收到一条短信),但从不读取结果并挂在无处可去,客户端挂起,VS永远无法恢复,我必须停止调试才能恢复正常。

问题是如果我有一个 ChildMethod Async,我必须标记所有父调用方法 Async,一直到 API 公共方法?

4

0 回答 0