소스 검색

修复: Session断开的回调会修改foreach的requestCallback的问题

tanghai 8 년 전
부모
커밋
c0abca591c
1개의 변경된 파일3개의 추가작업 그리고 2개의 파일을 삭제
  1. 3 2
      Unity/Assets/Scripts/Entity/Session.cs

+ 3 - 2
Unity/Assets/Scripts/Entity/Session.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using System.Linq;
 using System.Net;
 using System.Threading;
 using System.Threading.Tasks;
@@ -52,9 +53,9 @@ namespace Model
 
 			base.Dispose();
 
-			foreach (KeyValuePair<uint, Action<object>> keyValuePair in this.requestCallback)
+			foreach (Action<object> action in this.requestCallback.Values.ToArray())
 			{
-				keyValuePair.Value.Invoke(new ErrorResponse() { Error = ErrorCode.ERR_SocketDisconnected });
+				action.Invoke(new ErrorResponse() { Error = ErrorCode.ERR_SocketDisconnected });
 			}
 
 			this.channel.Dispose();