难以理解异步和等待的必要性
难以理解异步和等待的必要性
这个问题已经有了答案:
昨天,我学习了C#多任务的基础知识。虽然我在技术上似乎理解了它的工作原理,但我不明白为什么要这样做。请记住我是新手,这可能意味着我理解了一些错误的东西。例如,您可以编写:
public async Task SomeEventHandler() { if(foo) return await SomeMethod("a"); else return await SomeMethod("b"); } async Task 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语言中,您可以同时调用或生成相同函数的线程。
admin 更改状态以发布 2023年5月24日