gpt4 book ai didi

c# - 无法理解对异步和等待的需求

转载 作者:太空宇宙 更新时间:2023-11-03 15:03:16 24 4
gpt4 key购买 nike

<分区>

昨天,我学习了 C# 多任务处理的基础知识。虽然我在技术上似乎理解它是如何工作的,但我只是不明白为什么它会像现在这样完成。请记住,我是这个话题的新手,这可能表明我理解错了。例如,您可以这样写:

public async Task SomeEventHandler()
{ if(foo) return await SomeMethod("a");
else return await SomeMethod("b");
}

async Task<int> SomeMethod(string whatever)
{ string bar = await SomeInput();
return bar + " " + whatever;
}

我在这里没有看到的是为什么需要 async 和 await 关键字?为什么不能只写:

public void SomeEventHandler()
{ if(foo) return SomeMethod("a");
else return SomeMethod("b");
}

int SomeMethod(string whatever)
{ string bar = SomeInput();
return bar + " " + whatever;
}

输入法的实现类似于:

public string SomeInput()
{ while(!InputObject.stuffIncoming)
{ CurrentTheard.DoSomethingElse();
}
return InputObject.Next();
}

有人可以解释为什么这行不通,或者会以不受欢迎的方式工作吗?编辑:根据答案,似乎出于某种原因,等待的方法不能像常规方法那样调用,反之亦然。但是是什么原因造成的呢?至少在 D 中,您可以为同一功能调用或生成一个 theard。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com