Open YBenLee opened 9 months ago
获取锁之后,使用了没释放
您好,我最近无法亲自回复您的邮件。尽快给您回复。
获取锁之后,使用了没释放
我只是示例,即使释放也是会导致程序崩溃退出的。我使用全局捕抓异常也不行。
// 注册未处理异常事件处理程序
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(UnhandledExceptionHandler);
TaskScheduler.UnobservedTaskException += new EventHandler<UnobservedTaskExceptionEventArgs>(UnobservedTaskExceptionHandler);
这个错误是执行命令后,服务器没响应
这个错误是执行命令后,服务器没响应
我希望的是,即使服务器无响应都不应该导致我程序异常退出。
因为有可能会是网络波动,但原本我是正常连接的。但网络波动之后,捕获不了所有异常处理。导致程序被动退出了。其实应该在网络波动的时候,降频重连等待网络恢复,这是我期望的。
一直是在RespHelper这个类里面报错。
[异常] System.Net.Sockets.dll!System.Net.Sockets.NetworkStream.Read(System.Span<byte> buffer) 未知
[异常] System.Net.Sockets.dll!System.Net.Sockets.NetworkStream.ReadByte() 未知
[异常] FreeRedis.dll!FreeRedis.RespHelper.Resp3Reader.ReadObject(System.Text.Encoding encoding) 行 207 C# [异常] FreeRedis.dll!FreeRedis.Internal.DefaultRedisSocket.Read(FreeRedis.CommandPacket cmd) 行 180 C# [异常] FreeRedis.dll!FreeRedis.Internal.DefaultRedisSocket.TempProxyRedisSocket.Read(FreeRedis.CommandPacket cmd) 行 70 C# [异常] FreeRedis.dll!FreeRedis.RedisClient.PoolingAdapter.AdapterCall.AnonymousMethod0() 行 80 C# [异常] FreeRedis.dll!FreeRedis.RedisClient.LogCallCtrl
(FreeRedis.CommandPacket cmd, System.Func 0(object state2) 行 53 C# [异常] System.Private.CoreLib.dll!System.Threading.TimerQueueTimer..cctor.AnonymousMethod__27_0(object state) 未知 [异常] System.Private.CoreLib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) 未知 System.Private.CoreLib.dll!System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 未知 System.Private.CoreLib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) 未知 System.Private.CoreLib.dll!System.Threading.TimerQueueTimer.CallCallback(bool isThreadPool) 未知 System.Private.CoreLib.dll!System.Threading.TimerQueueTimer.Fire(bool isThreadPool) 未知 System.Private.CoreLib.dll!System.Threading.TimerQueue.FireNextTimers() 未知 System.Private.CoreLib.dll!System.Threading.TimerQueue.AppDomainTimerCallback(int id) 未知 [本机到托管的转换]func, bool aopBefore, bool aopAfter) 行 98 C# [异常] FreeRedis.dll!FreeRedis.RedisClient.LogCall (FreeRedis.CommandPacket cmd, System.Func func) 行 93 C# [异常] FreeRedis.dll!FreeRedis.RedisClient.PoolingAdapter.AdapterCall (FreeRedis.CommandPacket cmd, System.Func<FreeRedis.RedisResult, TValue> parse) 行 70 C# [异常] FreeRedis.dll!FreeRedis.RedisClient.Call (FreeRedis.CommandPacket cmd, System.Func<FreeRedis.RedisResult, TValue> parse) 行 91 C# [异常] FreeRedis.dll!FreeRedis.RedisClient.Eval(string script, string[] keys, object[] arguments) 行 32 C# [异常] FreeRedis.dll!FreeRedis.RedisClient.LockController.Refresh(int milliseconds) 行 82 C# [异常] FreeRedis.dll!FreeRedis.RedisClient.LockController..ctor.AnonymousMethod
[托管到本机的转换]
System.Private.CoreLib.dll!System.Threading.UnmanagedThreadPoolWorkItem.System.Threading.IThreadPoolWorkItem.Execute() 未知 System.Private.CoreLib.dll!System.Threading.ThreadPoolWorkQueue.Dispatch() 未知 System.Private.CoreLib.dll!System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart() 未知 System.Private.CoreLib.dll!System.Threading.Thread.StartCallback() 未知
`RedisClient redisClient = new RedisClient("xxxxx");
先连接成功,再使用工具模拟断网
之后就会不断的抛出异常,然后控制台程序会退出