多线程任务执行窗体框架jjychengTaskWinForm
多线程任务执行窗体框架jjychengTaskWinForm
- 作者:jjycheng
- 博客:https://blog.csdn.net/cplvfx
开源地址
- gitee:《多线程任务执行窗体框架jjychengTaskWinForm》
研发背景:
我们在做些小应用的时候,需要查看程序执行时间、执行日志和错误日志。这个框架完全可以满足你的需求。
示例应用:
- 爬虫项目
- 数据对比
- 数据迁移
- 数据批量操作
- 文件批量操作
- …等等
框架功能介绍:
1.多线程业务处理
2.时时运行日志
3.时时错误日志
4.数据库操作,使用的ORM是SqlSugar,支持多种数据库;
网址:https://www.donet5.com/Home/Doc
关系型数据库 | MySql、SqlServer、Sqlite、Oracle 、 postgresql、达梦DB2、Duckdb 人大金仓(合作关系)、海量数据库Vastbase(合作关系)MongoDb、神通数据库、瀚高、Access 、OceanBase、虚谷数据库 MySqlConnector、华为 GaussDB 、南大通用gbase8sMariaDB、Tidb、Odbc、Percona Server Amazon AuroraAzure Database for MySQL、PolarDB、Google Cloud SQL for MySQLkunDB、TDSQL、GoldenDB 、Doris、Hana 和 自定义数据库 |
---|---|
适合分布式 | OceanBase 、Tidb、GaussDB 、Doris |
时序数据库 | TDengine (支持群集,缺点不支持更新,语法比较弱支持的东西少)QuestDb(适合几十亿数据分析,模糊查询,适合单机,语法强大) |
列式存储库 | Clickhouse(适用于商业智能领域(BI) Duckdb |
文档数据库 | MongoDb |
即将上线 | Sybase、FireBird、InfluxDBlitedb、 ElasticSearch |
5. 程序运行耗时查看
框架截图:
程序运行后初始截图:
程序运行截图:
程序运行最大化截图:
技术栈和依赖第三方包说明:
技术栈介绍:
- 编程语言:C#
- 开发框架:.NET Core 8.0(跨平台运行时环境)
- UI框架:Windows Forms(WinForm,用于构建Windows桌面应用程序)
依赖第三方包:
- Microsoft.AspNetCore.StaticFiles(v2.3.0)
- 描述:ASP.NET Core static files middleware. Includes middleware for serving static files, directory browsing, and default files.
- 作者:Microsoft
- SqlSugarCore(v5.1.4.202)
- 描述: .Net Core3.1 .Net5 .Net6 .Net7 .Net8 .Net9 .Net10 安装此版本,好用的ORM框架 ,支持国外主流和国产人大金仓达梦 OceanBase GaussDB QuestDb ClickHouse Oracle MySql Gbase8s SqlServer Sqlite DB2 DuckDb Hana 等, 使用教程:https://www.donet5.com/Home/Doc?typeId=1226
- 作者: sunkaixuan
- Newtonsoft.Json(v13.0.3)
- 描述:Json.NET is a popular high-performance JSON framework for .NET
- 作者: James Newton-King
使用说明:
框架目录结构:
jjychengTaskWinForm项目|-- Enums (枚举库)|-- Factory(业务工厂)|-- Common(工厂公共方法)|-- SqlSugarBase.cs(数据库操作基类)|-- Test(示例测试代码)|-- Models(业务模型文件夹)|-- MySqlTest.cs(MySql数据库测试代码)|-- SqlServerTest.cs(SqlServer数据库测试代码)|-- Helper(帮助库)|-- FileUtil.cs(文件操作帮助类)|-- HttpHelper.cs(Http请求帮助类)|-- Models(模型库)
增加新任务:
第1步:在Factory
文件夹下创建你的任务文件夹
你也可以像我一样
|-- Factory(业务工厂文件夹)|-- MyTaskName(你的任务文件夹)|-- Models(你的业务模型文件夹)|-- MyTaskRun.cs(你的业务代码)
或者你可以仿照我写的MySqlTest.cs
,根据目录结构创建结构,然后,复制这个文件的代码进行修改,写入你的业务代码。
注意:
- 你的任务文件夹名,就是你的任务名称,你可以根据自己的需求命名。
- 你的业务模型文件夹,就是你的业务模型类所在的文件夹,你可以根据自己的需求命名。
- 你的业务代码文件,就是你的业务代码所在的文件,你可以根据自己的需求命名。
- 你的业务代码,就是你的业务代码,你可以根据自己的需求命名。
第2步:在Form1.cs
里配置任务
打开Form1.cs
,即右键文件》弹出下拉菜单》选择“查看代码”
在Form1_Load()
方法下面增加新任务
List<KeyValueModel> comboBoxData = new List<KeyValueModel>() {new KeyValueModel(){Key = "SqlServer测试",Value = "SqlServerTest"},new KeyValueModel(){Key = "MySql测试",Value = "MySqlTest"},new KeyValueModel(){Key = "测试任务3",Value = "Test3"}};
在button1_Click()
方法里,修改下面代码
// Todo: 执行你的任务
switch (selectedValue)
{case "SqlServerTest":TimeNumberRun();SqlServerTest.Run(this, filePathTextBox.Text);break;case "MySqlTest":TimeNumberRun();MySqlTest.Run(this, filePathTextBox.Text);break;default:MessageBox.Show("未找到任务", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);break;
}
第3步:运行
运行程序》选择你的任务》点击“开始执行按钮”