1
我有以下方法異常不拋出一個異步任務配置
public async Task<bool> Connect()
{
lock (_connectingLock)
{
if (_connecting)
throw new IOException("Already connecting");
_connecting = true;
}
try {
await tcpClient.ConnectAsync(...);
}
catch (SocketException e)
{
return false;
}
finally
{
lock (_connectingLock)
{
_connecting = false;
}
}
}
現在,我會希望Connect()
連續調用拋出IOException,但它不會發生!
可能是什麼原因?
看哪! NCrunch變綠了。乾杯! – kasperhj 2013-04-04 17:14:22
這種情況也很簡單,您可以使用'ContinueWith'而不是'await'來實現它,以便異常需要明確包裝到結果任務中,而不是隱式地發生。 – Servy 2013-04-04 17:26:33