重複の可能性:
.Net 4.5 での Async/Await の簡単な説明
私はしばらくの間 C# でプログラミングを行ってきましたが、新しいasync / await言語機能がどのように機能するかについて理解できません。
私はこのような関数を書きました:
public async Task<SocketError> ConnectAsync() {
if (tcpClient == null) CreateTCPClient();
if (tcpClient.Connected)
throw new InvalidOperationException("Can not connect client: IRCConnection already established!");
try {
Task connectionResult = tcpClient.ConnectAsync(Config.Hostname, Config.Port);
await connectionResult;
}
catch (SocketException ex) {
return ex.SocketErrorCode;
}
return SocketError.Success;
}
しかし、明らかに、これには意味がありませんよね?直後の行で TcpClient.ConnectAsync の結果を待っているからです。
しかし、 ConnectAsync()関数自体を別のメソッドで待機できるように記述したかったのです。これは正しいアプローチですか?私は少し迷っています。:)