【发布时间】:2016-07-02 22:08:14
【问题描述】:
我有一个方法,我声明为 asych 方法。代码如下所示。
private async Task<string> tempPassword()
{
char[] hashes = "ABCDEFGHJKMNPQRUVWXY34689!?@$#".ToCharArray();
Random r = new Random(DateTime.Now.Millisecond);
List<char> bits = new List<char>();
while (bits.Count < 7)
{
int i = r.Next(0, hashes.Length);
if (!bits.Contains(hashes[i]))
bits.Add(hashes[i]);
}
return string.Join("", bits.ToArray());
}
虽然这段代码是正确的并且可以编译,但 Visual Studio 给了我以下反馈:
此异步方法缺少等待操作符,将同步运行。 考虑使用 await 运算符来等待非阻塞 API 调用,或者 'await Task.Run(...)' 在后台线程上执行 CPU-Bound 工作。
虽然我没有丰富的异步背景知识(这就是我使用它的原因,老实说,所以我会学习)但在我看来,这种方法中没有任何需要await 运算符,所以我对我应该等待的内容有点困惑。
【问题讨论】:
-
您的代码中没有任何异步内容,因此不应将其标记为异步。这就是编译器试图告诉你的。只需将签名更改为
private string tempPassword()
标签: c# c#-4.0 asynchronous visual-studio-2015