我已经开始学习异步编程并且陷入混乱!
请考虑以下内容
public void NotAsync()
{
var result = CallSomethingWithAsync();
}
public async Task<bool> CallSomethingWithAsync()
{
//await some aysnc task
}
我遇到的问题是我的第一个功能不是异步的。这样,看来我可以应用Result或Start(例如CallSomethingWIthAsync().Result
);
我不明白这一点,因为我希望必须先启动它。但是,如果我做CallSomethingWithAsync().Start()
,那么我就没有选择的结果。例如CallSomethingWithAsync().Start().Result
有时候,我会看到一条警告,解释代码将同步执行。
但是,当引发异常时,它似乎一直在等待。
我希望我已经解释了让自己感到困惑的地方,Start
和Result
之间的区别是什么,异步时我该如何使用来获得结果(同步是可以的)方法返回Task<T>