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();
+ }
+
+
+ }
+}