는 use
키워드는 즉시이 범위를 벗어 IDisposable
를 결합, 그래서이 재귀 기능을 고려 처분 꼬리 재귀를 사용하는 방법을 찾으십시오. 각각의 재귀 이후에 StreamReader
을 처리하겠습니까?F 번호 사용 키워드와 재귀 함수 지금까지 내가 이해로
UPDATE
이 이토마스 응답이 나에게 당신이 아무것도 기대하지 않습니다 경우에 당신이 실제로 다시 뭔가를 기대하는 경우 고정 방법,하지만 보여? StreamWriter
이 예에서와 같이 :
let rec AsyncAcceptMessages(client : WebSocket) =
async {
let! message = client.AsyncReadMessage
if(not(isNull message)) then
let s =
use reader = new StreamReader(message)
reader.ReadToEnd()
use writer = new StreamWriter(client.CreateMessageWriter(WebSocketMessageType.Text), Encoding.UTF8)
writer.Write s
printf "%s" <| s
do! AsyncAcceptMessages client
}
업데이트에 대해서는'do'를 사용하여 중첩 된 범위에'IDisposable '을 넣을 수 있습니다. [요지를보세요.] (https://gist.github.com/FunctionalFirst/0348951e82335a5add3d) – Daniel
고마워요. – vtortola