From 1f6407c515b4f3b585e4e0c7606bad4a3cbed2e9 Mon Sep 17 00:00:00 2001 From: zpc Date: Tue, 11 Jun 2024 18:57:50 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=96=87=E4=BB=B6=E8=B7=AF?= =?UTF-8?q?=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ClassLibrary1/Class1.cs | 9 -- ClassLibrary1/ClassLibrary1.csproj | 8 -- .../Processors/ThreadProcessor.cs | 122 ------------------ HuanMeng.Model/HuanMeng.Model.csproj | 8 -- HuanMengProject.sln | 37 ++++-- .../HuanMeng.DotNetCore}/Base/BLLBase.cs | 0 .../HuanMeng.DotNetCore}/Base/BaseResponse.cs | 1 + .../HuanMeng.DotNetCore}/Base/DaoBase.cs | 0 .../HuanMeng.DotNetCore}/Base/IResponse.cs | 0 .../HuanMeng.DotNetCore}/Base/ResonseCode.cs | 0 .../HuanMeng.DotNetCore.csproj | 0 .../MiddlewareExtend/ExceptionMiddleware.cs | 2 + .../ExecutionTimeMiddleware.cs | 0 .../MiddlewareExtend/MiddlewareExtends.cs | 0 .../Processors/BaseProcessor.cs | 0 .../Processors/ITaskProcessor.cs | 0 .../Processors/ThreadProcessor.cs | 81 ++++++++++++ 17 files changed, 111 insertions(+), 157 deletions(-) delete mode 100644 ClassLibrary1/Class1.cs delete mode 100644 ClassLibrary1/ClassLibrary1.csproj delete mode 100644 HuanMeng.DotNetCore/Processors/ThreadProcessor.cs delete mode 100644 HuanMeng.Model/HuanMeng.Model.csproj rename {HuanMeng.DotNetCore => src/0-core/HuanMeng.DotNetCore}/Base/BLLBase.cs (100%) rename {HuanMeng.DotNetCore => src/0-core/HuanMeng.DotNetCore}/Base/BaseResponse.cs (99%) rename {HuanMeng.DotNetCore => src/0-core/HuanMeng.DotNetCore}/Base/DaoBase.cs (100%) rename {HuanMeng.DotNetCore => src/0-core/HuanMeng.DotNetCore}/Base/IResponse.cs (100%) rename {HuanMeng.DotNetCore => src/0-core/HuanMeng.DotNetCore}/Base/ResonseCode.cs (100%) rename {HuanMeng.DotNetCore => src/0-core/HuanMeng.DotNetCore}/HuanMeng.DotNetCore.csproj (100%) rename {HuanMeng.DotNetCore => src/0-core/HuanMeng.DotNetCore}/MiddlewareExtend/ExceptionMiddleware.cs (99%) rename {HuanMeng.DotNetCore => src/0-core/HuanMeng.DotNetCore}/MiddlewareExtend/ExecutionTimeMiddleware.cs (100%) rename {HuanMeng.DotNetCore => src/0-core/HuanMeng.DotNetCore}/MiddlewareExtend/MiddlewareExtends.cs (100%) rename {HuanMeng.DotNetCore => src/0-core/HuanMeng.DotNetCore}/Processors/BaseProcessor.cs (100%) rename {HuanMeng.DotNetCore => src/0-core/HuanMeng.DotNetCore}/Processors/ITaskProcessor.cs (100%) create mode 100644 src/0-core/HuanMeng.DotNetCore/Processors/ThreadProcessor.cs diff --git a/ClassLibrary1/Class1.cs b/ClassLibrary1/Class1.cs deleted file mode 100644 index 1c618bc..0000000 --- a/ClassLibrary1/Class1.cs +++ /dev/null @@ -1,9 +0,0 @@ -using System; - -namespace ClassLibrary1 -{ - public class Class1 - { - - } -} diff --git a/ClassLibrary1/ClassLibrary1.csproj b/ClassLibrary1/ClassLibrary1.csproj deleted file mode 100644 index b4b43f4..0000000 --- a/ClassLibrary1/ClassLibrary1.csproj +++ /dev/null @@ -1,8 +0,0 @@ - - - - netstandard2.1 - enable - - - diff --git a/HuanMeng.DotNetCore/Processors/ThreadProcessor.cs b/HuanMeng.DotNetCore/Processors/ThreadProcessor.cs deleted file mode 100644 index 337030c..0000000 --- a/HuanMeng.DotNetCore/Processors/ThreadProcessor.cs +++ /dev/null @@ -1,122 +0,0 @@ - - -namespace HuanMeng.DotNetCore.Processors -{ - /// - /// 包含处理线程的Processor - /// - public abstract class ThreadProcessor : BaseProcessor - { - /// - /// 处理线程 - /// - protected Thread? _thread = null; - - /// - /// 是否运行处理器 - /// - protected bool _isRunProc = true; - - /// - /// 构造函数 - /// - public ThreadProcessor() - { - - } - - /// - /// 执行处理 - /// - public override void Run() - { - try - { - _isRunProc = true; - - _thread = new Thread(new ThreadStart(Proc_Do)); - _thread.Start(); - - // LogHelper.Info($"ThreadProcessor.Run已执行"); - } - catch (Exception ex) - { - // LogHelper.Error($"ThreadProcessor.Run,error", ex); - } - } - - /// - /// 线程处理函数 - /// - protected abstract void Proc_Do(); - //{ - // LogHelper.Info($"ThreadProcessor.Proc_Do已执行"); - - // ////demo - // ////处理流程 - // //while (_isRunProc) - // //{ - // // try - // // { - // // //DoProeess(); - // // //简单示例Sleep - // // Thread.Sleep(10000); - // // } - // // catch (Exception ex) - // // { - // // LogHelper.Error("ThreadProcessor.Proc_Do,DoProeess异常", ex); - // // } - // //} - //} - - //demo - ///// - ///// 执行流程处理 - ///// - //protected virtual void DoProeess() - //{ - // //简单示例 - // try - // { - // //简单示例Sleep - // Thread.Sleep(10000); - // } - // catch (Exception ex) - // { - // LogHelper.Error("ThreadProcessor.Proc_Do,异常", ex); - // } - //} - - /// - /// 停止处理线程 - /// - public override void Stop() - { - //加快停止服务的速度,可以用任务执行,不等待结束 - //Task.Run(() => - //{ - _isRunProc = false; - - //等待完成停止 - if (_thread != null && _thread.IsAlive) - { - _thread.Join(WaitTimeMax_StopProc); //等待线程结束 - _thread = null; - } - // LogHelper.Info($"ThreadProcessor.Stop已执行"); - //}); - } - - /// - /// Dispose - /// - public override void Dispose() - { - //停止处理线程 - _isRunProc = false; - this.Stop(); - - base.Dispose(); - } - } -} diff --git a/HuanMeng.Model/HuanMeng.Model.csproj b/HuanMeng.Model/HuanMeng.Model.csproj deleted file mode 100644 index b4b43f4..0000000 --- a/HuanMeng.Model/HuanMeng.Model.csproj +++ /dev/null @@ -1,8 +0,0 @@ - - - - netstandard2.1 - enable - - - diff --git a/HuanMengProject.sln b/HuanMengProject.sln index e37779f..c11cebb 100644 --- a/HuanMengProject.sln +++ b/HuanMengProject.sln @@ -3,9 +3,21 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.10.34916.146 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HuanMeng.Model", "HuanMeng.Model\HuanMeng.Model.csproj", "{96AA1BD6-E279-4DEA-90C1-6124710E480F}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{443B77DF-BB15-4DF7-8F45-C54FE6F51AB9}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HuanMeng.DotNetCore", "HuanMeng.DotNetCore\HuanMeng.DotNetCore.csproj", "{CCE9E3F9-75DF-4422-A5FD-6B8DBA21B03F}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "0-core", "0-core", "{DD14191F-22CE-48D8-A944-B8A41C97ACD4}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "1-service", "1-service", "{868BF208-7222-482B-B331-1A8482532F1B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "2-api", "2-api", "{0C0B6EB5-E41D-46D9-9F60-90D320A2EEF3}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "3-client", "3-client", "{23416FDA-19AE-487D-BCAA-5A9D04746500}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "5-console", "5-console", "{F34C5BC4-8810-4D6A-B003-AFE12D7ED4BA}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "9-test", "9-test", "{8D39E84B-2810-41D7-AFE6-0A58E09E34C3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HuanMeng.DotNetCore", "src\0-core\HuanMeng.DotNetCore\HuanMeng.DotNetCore.csproj", "{B9014C9B-B47D-4900-9EA7-4FE8998C30BE}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -13,18 +25,23 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {96AA1BD6-E279-4DEA-90C1-6124710E480F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {96AA1BD6-E279-4DEA-90C1-6124710E480F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {96AA1BD6-E279-4DEA-90C1-6124710E480F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {96AA1BD6-E279-4DEA-90C1-6124710E480F}.Release|Any CPU.Build.0 = Release|Any CPU - {CCE9E3F9-75DF-4422-A5FD-6B8DBA21B03F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CCE9E3F9-75DF-4422-A5FD-6B8DBA21B03F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CCE9E3F9-75DF-4422-A5FD-6B8DBA21B03F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CCE9E3F9-75DF-4422-A5FD-6B8DBA21B03F}.Release|Any CPU.Build.0 = Release|Any CPU + {B9014C9B-B47D-4900-9EA7-4FE8998C30BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B9014C9B-B47D-4900-9EA7-4FE8998C30BE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B9014C9B-B47D-4900-9EA7-4FE8998C30BE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B9014C9B-B47D-4900-9EA7-4FE8998C30BE}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {DD14191F-22CE-48D8-A944-B8A41C97ACD4} = {443B77DF-BB15-4DF7-8F45-C54FE6F51AB9} + {868BF208-7222-482B-B331-1A8482532F1B} = {443B77DF-BB15-4DF7-8F45-C54FE6F51AB9} + {0C0B6EB5-E41D-46D9-9F60-90D320A2EEF3} = {443B77DF-BB15-4DF7-8F45-C54FE6F51AB9} + {23416FDA-19AE-487D-BCAA-5A9D04746500} = {443B77DF-BB15-4DF7-8F45-C54FE6F51AB9} + {F34C5BC4-8810-4D6A-B003-AFE12D7ED4BA} = {443B77DF-BB15-4DF7-8F45-C54FE6F51AB9} + {8D39E84B-2810-41D7-AFE6-0A58E09E34C3} = {443B77DF-BB15-4DF7-8F45-C54FE6F51AB9} + {B9014C9B-B47D-4900-9EA7-4FE8998C30BE} = {DD14191F-22CE-48D8-A944-B8A41C97ACD4} + EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {4A1DC406-AFAA-4884-859C-51B9B26E37FC} EndGlobalSection diff --git a/HuanMeng.DotNetCore/Base/BLLBase.cs b/src/0-core/HuanMeng.DotNetCore/Base/BLLBase.cs similarity index 100% rename from HuanMeng.DotNetCore/Base/BLLBase.cs rename to src/0-core/HuanMeng.DotNetCore/Base/BLLBase.cs diff --git a/HuanMeng.DotNetCore/Base/BaseResponse.cs b/src/0-core/HuanMeng.DotNetCore/Base/BaseResponse.cs similarity index 99% rename from HuanMeng.DotNetCore/Base/BaseResponse.cs rename to src/0-core/HuanMeng.DotNetCore/Base/BaseResponse.cs index 369a6dc..3908154 100644 --- a/HuanMeng.DotNetCore/Base/BaseResponse.cs +++ b/src/0-core/HuanMeng.DotNetCore/Base/BaseResponse.cs @@ -1,5 +1,6 @@ using System.Runtime.Serialization; + using XLib.DotNetCore.Base; namespace HuanMeng.DotNetCore.Base diff --git a/HuanMeng.DotNetCore/Base/DaoBase.cs b/src/0-core/HuanMeng.DotNetCore/Base/DaoBase.cs similarity index 100% rename from HuanMeng.DotNetCore/Base/DaoBase.cs rename to src/0-core/HuanMeng.DotNetCore/Base/DaoBase.cs diff --git a/HuanMeng.DotNetCore/Base/IResponse.cs b/src/0-core/HuanMeng.DotNetCore/Base/IResponse.cs similarity index 100% rename from HuanMeng.DotNetCore/Base/IResponse.cs rename to src/0-core/HuanMeng.DotNetCore/Base/IResponse.cs diff --git a/HuanMeng.DotNetCore/Base/ResonseCode.cs b/src/0-core/HuanMeng.DotNetCore/Base/ResonseCode.cs similarity index 100% rename from HuanMeng.DotNetCore/Base/ResonseCode.cs rename to src/0-core/HuanMeng.DotNetCore/Base/ResonseCode.cs diff --git a/HuanMeng.DotNetCore/HuanMeng.DotNetCore.csproj b/src/0-core/HuanMeng.DotNetCore/HuanMeng.DotNetCore.csproj similarity index 100% rename from HuanMeng.DotNetCore/HuanMeng.DotNetCore.csproj rename to src/0-core/HuanMeng.DotNetCore/HuanMeng.DotNetCore.csproj diff --git a/HuanMeng.DotNetCore/MiddlewareExtend/ExceptionMiddleware.cs b/src/0-core/HuanMeng.DotNetCore/MiddlewareExtend/ExceptionMiddleware.cs similarity index 99% rename from HuanMeng.DotNetCore/MiddlewareExtend/ExceptionMiddleware.cs rename to src/0-core/HuanMeng.DotNetCore/MiddlewareExtend/ExceptionMiddleware.cs index a65370c..c7c6089 100644 --- a/HuanMeng.DotNetCore/MiddlewareExtend/ExceptionMiddleware.cs +++ b/src/0-core/HuanMeng.DotNetCore/MiddlewareExtend/ExceptionMiddleware.cs @@ -1,6 +1,8 @@ using HuanMeng.DotNetCore.Base; + using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Logging; + using Newtonsoft.Json; diff --git a/HuanMeng.DotNetCore/MiddlewareExtend/ExecutionTimeMiddleware.cs b/src/0-core/HuanMeng.DotNetCore/MiddlewareExtend/ExecutionTimeMiddleware.cs similarity index 100% rename from HuanMeng.DotNetCore/MiddlewareExtend/ExecutionTimeMiddleware.cs rename to src/0-core/HuanMeng.DotNetCore/MiddlewareExtend/ExecutionTimeMiddleware.cs diff --git a/HuanMeng.DotNetCore/MiddlewareExtend/MiddlewareExtends.cs b/src/0-core/HuanMeng.DotNetCore/MiddlewareExtend/MiddlewareExtends.cs similarity index 100% rename from HuanMeng.DotNetCore/MiddlewareExtend/MiddlewareExtends.cs rename to src/0-core/HuanMeng.DotNetCore/MiddlewareExtend/MiddlewareExtends.cs diff --git a/HuanMeng.DotNetCore/Processors/BaseProcessor.cs b/src/0-core/HuanMeng.DotNetCore/Processors/BaseProcessor.cs similarity index 100% rename from HuanMeng.DotNetCore/Processors/BaseProcessor.cs rename to src/0-core/HuanMeng.DotNetCore/Processors/BaseProcessor.cs diff --git a/HuanMeng.DotNetCore/Processors/ITaskProcessor.cs b/src/0-core/HuanMeng.DotNetCore/Processors/ITaskProcessor.cs similarity index 100% rename from HuanMeng.DotNetCore/Processors/ITaskProcessor.cs rename to src/0-core/HuanMeng.DotNetCore/Processors/ITaskProcessor.cs diff --git a/src/0-core/HuanMeng.DotNetCore/Processors/ThreadProcessor.cs b/src/0-core/HuanMeng.DotNetCore/Processors/ThreadProcessor.cs new file mode 100644 index 0000000..128a742 --- /dev/null +++ b/src/0-core/HuanMeng.DotNetCore/Processors/ThreadProcessor.cs @@ -0,0 +1,81 @@ +namespace HuanMeng.DotNetCore.Processors +{ + /// + /// 包含处理线程的处理器基类 + /// + public abstract class ThreadProcessor : BaseProcessor + { + protected Thread? _thread; + protected bool _isRunning; + protected string? _threadName; + + /// + /// 构造函数 + /// + public ThreadProcessor() { } + + /// + /// 构造函数 + /// + /// 线程名称 + public ThreadProcessor(string threadName) + { + _threadName = threadName; + } + + /// + /// 执行处理 + /// + /// 如果处理器已经在运行,抛出异常 + public override void Run() + { + if (_isRunning) + { + throw new InvalidOperationException("重复执行线程"); + } + + _isRunning = true; + + _thread = new Thread(Proc_Do) + { + Name = _threadName + }; + _thread.Start(); + } + + /// + /// 线程处理函数,需要在子类中实现 + /// + protected abstract void Proc_Do(); + + /// + /// 停止处理线程 + /// + public override void Stop() + { + if (!_isRunning) + { + return; + } + + _isRunning = false; + + if (_thread != null && _thread.IsAlive) + { + _thread.Join(WaitTimeMax_StopProc); // 等待线程结束 + _thread = null; + } + } + + /// + /// 释放资源 + /// + public override void Dispose() + { + Stop(); + base.Dispose(); + } + + + } +}