C#技巧
文章平均质量分 58
qq_18932003
编程爱好者
展开
-
防止IIS回收停止Job的处理(Quartz.net)
我们知道关闭、重启网站或者IIS程序池是会执行Application_End事件的,Application_End 事件后 就跟刚部署到IIS的站点一样,在发送第一个针对该 Web 应用程序的 Http 请求后,IIS 才会自动启动 Web 应用程序,既然IIS是因为程序闲置没有收到请求而回收进程的,那就在Application_End 事件里再提交一个请求给该 Web 应用程序,从而“激活”关闭的应用程序不就可以了?第二,GC并不是实时性的,这将会造成系统性能上的瓶颈和不确定性。原创 2024-06-14 09:47:50 · 711 阅读 · 0 评论 -
C#发邮件_EmailHelper
string mailContent = "HI,这是我发给你的一个测试邮件";转载 2024-03-18 22:05:59 · 115 阅读 · 0 评论 -
C# PDFSharp生成pdf读取pdf
C# PDFSharp生成pdf文件 - 博客林使用PdfSharp从模板生成Pdf文件_林晓lx的博客-CSDN博客c#使用pdfSharp制作pdf(条形码+图片+去除水印)_HUYSON的博客-CSDN博客PDFSharp - Graphics 绘制接口_8120830的技术博客_51CTO博客https://www.cnblogs.com/hsiang/p/14608694.html原创 2024-02-28 08:03:37 · 920 阅读 · 0 评论 -
C# WinForm扩展控件TextBox底部下划线展示
在winform项目中,新建一个类 TextBoxLine ,然后编译项目,打开工具箱就可以看到控件了。原创 2023-08-03 18:07:48 · 1014 阅读 · 1 评论 -
C# 邮件发送
17 message.Attachments.Add(new System.Net.Mail.Attachment("附件.txt"));本次采用163邮箱,因为用到了smtp协议,所以得保证这个邮箱的smtp服务是开启的。具体操作从以下文档得到。2.其次是准备好一个邮箱,我们得对邮箱做一些设置。8 //收件人。2 /// 邮件信息。10 //抄送。2 /// 发送邮件。到此我们的准备工作告一段落。转载 2023-07-23 22:33:45 · 370 阅读 · 0 评论 -
C#简单通用日志类
region LogManager 日志测试。原创 2023-07-22 15:25:57 · 200 阅读 · 0 评论 -
c# FileSystemWatcher 实时监控文件目录
【代码】c# FileSystemWatcher 实时监控文件目录。原创 2023-07-08 19:01:21 · 844 阅读 · 0 评论 -
C# Winform应用程序占用内存较大解决方法
微软的 .NET FRAMEWORK 现在可谓如火如荼了。但是,.NET 一直所为人诟病的就是“胃口太大”,狂吃内存,虽然微软声称 GC 的功能和智能化都很高,但是内存的回收问题,一直存在困扰,尤其是 winform 程序,其主要原因是因为.NET程序在启动时,是需要由JIT动态编译并加载的,这个加载会把所有需要的资源都加载进来,很多资源是只有启动时才用的。以XP 系统为例子,程序启动后,打开任务管理器,会看到占用的内存量比较大,你把程序最小化,会发现该程序占用的内存迅速减小到一个很小的值,再恢复你的程原创 2020-07-18 23:32:05 · 1722 阅读 · 0 评论 -
C#中字节数组(byte[])和字符串相互转换
C# 序列化和反序列化(xml 文件) </h1> <div class="clear"></div> <div class="postBody"> 序列化是将对象保存为文本文件或二进制文件;反序列化则是读取文件信息,还原为对象; 序列化保存为文本...原创 2019-10-12 09:29:10 · 1571 阅读 · 0 评论 -
C#中 @ 用法
string sql = "select * from student id='1001'";string sqll = @"select * from student id=""1001""" ;string path = "C:\\1\\1.txt";string pathh = @"C:\1\1.txt"; PrintString(sql); // select * ...原创 2020-01-23 16:27:34 · 91 阅读 · 0 评论 -
如何实现 Linq 查询where条件的复用
我在写 Linq 查询的过程中,遇到了需要复用 Linq 查询条件的问题,比如下面的 Linq 查询:.Where(x=>x.Contains(""));我能不能将x => x.Contains("")提取出然后单独保存起来,再到后续的 linq 查询时复用,比如下面这样。.Where(previouslySavedStatement);回答区 Hamid Pourjam 你完全可以将其存放在变量中,如果你是在IQueryable上扩展的话,...原创 2022-03-20 20:21:26 · 816 阅读 · 0 评论 -
C# 序列化和反序列化
/// <summary>/// 序列化对象/// </summary>/// <typeparam name="T">对象类型</typeparam>/// <param name="obj">对象</param>/// <returns>序列化的 Json 字符串</returns>pu...原创 2020-01-23 16:26:18 · 103 阅读 · 0 评论 -
C# Action和Func
Action和Func在实际开发中很常用,个人觉得很抽象,下面两个小例子用来入门//Action无返回值Action<int, int> act = null;act = (int a, int b) =>{ Console.WriteLine(a + b);};act.Invoke(2, 3);//Func有返...原创 2020-01-23 16:12:54 · 116 阅读 · 0 评论 -
C# 使用path获取文件路径
using System.IO;Path类的静态方法: ChangeExtension 更改路径字符串的扩展名。 &nbs...原创 2019-10-12 08:01:07 · 777 阅读 · 0 评论 -
C# 多线程 Invoke BeginInvoke
Invoke在线程中等待Dispatcher调用指定方法,完成后继续下面的操作。BeginInvoke不必等待Dispatcher调用制定方法,直接继续下面的操作。这个在线程中操作UI控件时常用的一个方法,这样程序就能更好地运行和更好的用户体验。下面的例子就是我们在线程中使用Invoke方法操控现在的状态。 this.gb_LogResult.Invoke(new Action(delegate { this.gb_LogResult.Text = "分析结果: " + ..原创 2020-07-18 23:34:05 · 363 阅读 · 0 评论 -
C# 测试一段代码的运行时间
Stopwatch stopWatch = new Stopwatch();/开始stopWatch.Start();Type type = a.GetExportedTypes().First(t => t.Name == item.menuType);//要测试的代码stopWatch.Stop();TimeSpan ts = stopWatch.Elapsed;...原创 2020-01-23 17:01:25 · 171 阅读 · 0 评论 -
C#金额小写转大写
/// C#金额小写转大写 public static string MoneyToUpper(string strAmount) { string functionReturnValue = null; bool IsNegative = false; // 是否是负数 if (strAmou...原创 2019-10-15 07:25:42 · 188 阅读 · 0 评论 -
C# 探测器测试系统 委托多线程
运行效果:重要知识点: 控件循环遍历操控; 队列数组的应用: private Queue<double>[] dataQueue = new Queue<double>[8]; //把Queue<double>看成一个类型 int[] a=new int [8] 3. 委托与线程,主要是为了界面实时刷新显示数据;4. 窗体最大化而不遮挡任务栏;5. 数据解码,标准差、均值等运算.主窗体MainForm.csu...转载 2021-11-25 22:19:48 · 336 阅读 · 0 评论 -
C# 四种委托实现详解说明
c#转载 2022-10-13 08:00:55 · 1070 阅读 · 0 评论 -
datatable linq 查询排序用法总结
LINQ原创 2022-10-13 07:58:17 · 4279 阅读 · 0 评论 -
api接口返回动态的json格式(linq to json)
c#转载 2022-10-13 07:52:04 · 984 阅读 · 0 评论 -
C# winForm 图片生成缩略图
c#原创 2024-02-28 08:05:57 · 346 阅读 · 0 评论 -
c# FileStream、StreamReader/Writer、MemoryStream
文件流转载 2022-07-10 22:27:08 · 811 阅读 · 0 评论 -
C# string和MemoryStream及byte[]之间相互转换
流原创 2022-07-31 11:10:16 · 2942 阅读 · 0 评论 -
c# 异步委托和task多线程实战
多线程原创 2022-07-10 17:23:53 · 1137 阅读 · 0 评论 -
WinForm捕获未处理的全局异常
背景我们在做WinForm程序的时候,一般都是对异常进行处理,但是,我们要防止不小心出现未知异常,导致软件崩溃。也可采集系统未知的异常信息,防止出现异常,也无法下手。于是就有了如这篇文章标题所述的一个简单的需求。using PaiXie.Pos.Client.Core;using PaiXie.Utils;using System;using System.Collections.Generic;using System.Linq;using System.Threading;usin原创 2021-10-28 09:01:13 · 145 阅读 · 0 评论 -
C# HTTP请求 异步(async await)
C# HTTP请求 异步(async await) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34转载 2021-10-23 14:33:34 · 2998 阅读 · 0 评论 -
js解析复杂json对象
第一步:确定是json对象而不是json字符串,如果是字符串先转化为对象:如果使用JSON.parse(str),会报错,因为他只能解析单个对象的json字符串而使用eval('('+str+')')则可以完美解决第二步:获取到某一步之后(json.text)可能会变为字符串,此时需要将字符串转化为对象然后继续获取,否则会变为undifine;js解析多层嵌套的json,取出所有父元素属性和遍历所有子元素https://www.cnblogs.com/calamus/p/74660原创 2021-10-11 10:36:44 · 2264 阅读 · 0 评论 -
C# 中异步任务Task的取消和监控
在.Net和C#中运行异步代码相当简单,因为我们有时候需要取消正在进行的异步操作,通过本文,可以掌握 通过CancellationToken取消任务(包括non-cancellable任务)。早期早期.Net 使用 BackgroundWorker 完成异步长时间运行操作。可以使用CacnelAsync方法设置 CancellationPending = true private void BackgroundLon.转载 2021-10-03 16:41:32 · 3748 阅读 · 0 评论 -
C# Json.Net解析实例,收藏备用
本文以一个简单的小例子,简述Json.Net的相关知识,仅供学习分享使用,如有不足之处,还请指正。概述Json.Net is aPopular high-performance JSON framework for .NET.Json.Net是当前比较流行的高效的Json解析的.Net框架。主要支持序列化,反序列化,手动解析,Linq等功能,可谓是功能强大而使用简单。 使用方式:在项目中引入Newtonsoft.Json.dll文件即可里面的功能。 常见功能:序列化与反序列化..转载 2021-10-03 16:38:45 · 672 阅读 · 0 评论 -
c# winform文件的断点续传到服务端
一、开篇描述本篇博客所描述的断点续传功能是基于c#语言,服务器端采用.net mvc框架,客户端采用winform框架。本篇博客实现断点续传功能的基本思路:1)服务器端是把接收到的文件流,追加到已有的文件;2)客户端是把文件流截段上传;其实,任何一种计算机语言基于这个思路(web客户端JavaScript目前例外),都可以实现断点续传的功能。二、服务器端namespace MvcApplicationUpload.Controllers{ public class HomeC转载 2021-09-28 08:26:34 · 597 阅读 · 0 评论 -
c# IDataReader DataTable 转实体类(泛型)
namespaceComm { publicstaticclassDataConvert { /// <summary> /// 把DataRow对象转成实体类。 /// </summary> /// <typeparam name="T"></typeparam> /// <pa...转载 2021-09-28 08:14:14 · 889 阅读 · 0 评论 -
Sql-Linq-Lambda对照表
Sql Linq Lambda SELECT * FROM Employee from e in Employee select e Employee .Select(e => e) SELECT ID, Title FROM Employee from e in Employee select new {ID = e.ID, Title = e....转载 2021-09-28 08:12:26 · 150 阅读 · 0 评论 -
c# 获取枚举注释
1.定义标签和获取标签值的方法namespace Comm{ public static class EnumHelper { /// <summary> /// 得到枚举的DescriptionAttribute值。 /// </summary> /// <typeparam name="TEnum"></typeparam> /// <param转载 2021-09-28 08:08:49 · 715 阅读 · 0 评论 -
c# SqlDataAdapter向数据库插入一个DataTable
/// <summary>/// 导入京东卡/// </summary>/// <param name="dtIn"></param>public void PutJDCard(DataTable dtIn){ //使用select 0,不是为了查询出数据,而是要查询出表结构向数据库回写数据 string strSql = @" SELECT top 0 PhoneNo,CardQuota,ExpireDate,CardNo,Ca.转载 2021-09-28 08:05:55 · 618 阅读 · 0 评论 -
C#参数列表中的this(扩展方法)
参数列表中this的这种用法是在.NET 3.0之后新增的一种特性---扩展方法。通过这个属性可以让程序员在现有的类型上添加扩展方法(无需创建新的派生类型、重新编译或者以其他方式修改原始类型)。扩展方法是一种特殊的静态方法,虽然是静态方法,但是可以像使用类型上的实例方法一样去使用扩展方法(调用扩展方法与调用在类型中实际定义的方法之间没有明显的差异)。扩展方法的第一个参数指定该方法作用于哪个类型,并且该参数以this修饰符为前缀。当你在其他命名空间使用时,需要用using将扩展方法所在命名空间显式导入到转载 2021-08-28 10:29:37 · 437 阅读 · 0 评论 -
ado.net 超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。
超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。解决办法1.在代码里面,把未关闭的连接关闭2.扩大共享池,方法如下:解决方法可以是修改连接池的连接生存期,因为默认值是60秒,即连接从应用程序被释放后可以在池中保存的时间。具体操作步骤如下:如果是ODBC的话,则可以在ODBC Data Source Administrator中手动更改,该程序位于“Start”菜单中的“Programs”->\"Adminstrativ.原创 2021-08-28 08:48:52 · 1449 阅读 · 0 评论 -
ping命令结果中如何显示时间
命令bai本身是不具备的,可以通过批处理实现du,在后面加上时间,并保存到 D:\ping.txt 可以参考下面zhi的代码:@echo offd:for /l %%i in (1,1,%999999999%) do (ping %1192.168.1.1 -n 1% && echo %% >>ping.txtdate /t >>ping.txttime /t >>ping.txt)pauseping 192.16..原创 2021-03-03 20:17:59 · 5742 阅读 · 2 评论 -
Linq 查询某个字段为null的数据--实战
如tb_flag 数据结构如下:flag int null不能使用:flag==null生成的SQL语句为 where flag=null建议使用:可空类型 用Nullable<T>.Equals(字段,值)var query=from f in db.tb_flagwhere Nullable<int>.Equals(f.flag,null) select f;生成的SQL语句为 where flag is null#region 取无估计产品编码...原创 2020-12-24 23:49:05 · 2323 阅读 · 0 评论 -
VS2017 编译报错:由于应用程序配置不正确,程序未能启动,解决方法
笔记本在用VS2017编译程序时,莫名奇妙的发生蓝屏,重启后再次编译程序报错由于应用程序配置不正确,程序未能启动解决办法2第二步:原创 2020-12-12 22:53:11 · 1496 阅读 · 0 评论