我最近一直在学习异步编程,我想我已经掌握了它.异步编程很简单,只允许我们的程序进行多任务处理.
混乱配备await和async编程,它似乎混淆我多一点,可能有人帮助回答一些我的顾虑?
我没有看到async关键字那么多,只是你想要一种方法让Visual Studio知道该方法可能await是某种东西,并允许它来警告你.如果它有一些其他特殊含义实际影响某些东西,有人可以解释一下吗?
移动到await,跟一个朋友,我被告知我有1周重大的事情错了之后,await不会阻止当前的方法,它只是执行留在该方法中的代码,并不会在自己时代的异步操作.
现在,我不确定这种情况经常发生,但是让我们说你有这样的代码.
Console.WriteLine("Started checking a players data.");
var player = await GetPlayerAsync();
foreach (var uPlayer in Players.Values) {
uPlayer.SendMessage("Checking another players data");
}
if (player.Username == "SomeUsername") {
ExecuteSomeOperation();
}
Console.WriteLine("Finished checking a players data.");
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我运行了一些异步代码GetPlayerAsync,如果我们深入到范围并且我们需要访问播放器会发生什么,但它还没有返回播放器呢?
如果它没有阻止该方法,它如何知道该玩家不是null,它是否做了一些魔法并等待我们如果我们到达那种情况,或者我们只是禁止自己编写这种方法并处理它我们自己.