
默认
望天hous
虚心学习
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C#如何控制方法的执行时间,超时则强制退出方法执行
C#如何控制方法的执行时间,超时则强制退出方法执行原创 2022-06-09 16:29:21 · 1905 阅读 · 0 评论 -
SQLite数据库连接字符串
(基本的)Data Source=filename;Version=3;(使⽤编码)Using UTF16Data Source=filename;Version=3;UseUTF16Encoding=True(带密码的)Data Source=filename;Version=3;Password=myPassword;(使⽤前数据库格式)Using the pre 3.3x database format3.3xData Source=filename;Version=3;Legac原创 2022-04-06 13:57:42 · 3132 阅读 · 0 评论 -
C# WebRTC方法
private static void FrameCallBack(in FrameRequest request) { //自定义数据来源 Bitmap localBitmap = new Bitmap(320, 420, 120, PixelFormat.Format32bppArgb, IntPtr.Zero); var dataBitmap = localBitmap.LockBits(new Rectangle(Point...原创 2022-03-24 10:34:26 · 2816 阅读 · 0 评论 -
C# 帮助类 NamedPipeSignaler
using System;using System.IO;using System.IO.Pipes;using System.Threading;using System.Threading.Tasks;using System.Threading.Tasks.Dataflow;using Microsoft.MixedReality.WebRTC;namespace NamedPipeSignaler{ /// <summary> /// Simple W.原创 2022-03-21 14:45:50 · 556 阅读 · 0 评论 -
C# 备忘 递归调用过程图(简单)
原创 2022-02-08 16:09:37 · 420 阅读 · 0 评论 -
安装赫斯曼网管软件8.1
1.以管理员身份运行:ihivision08100_windows.exe2.选择语言,点击Ok3.一步一步,按照向导安装即可4.在最后一步时候要留意一下是使用的那种Service5.点击最后一步安装完成,可以免费使用30天软件下载地址:https://download.youkuaiyun.com/download/weixin_43542114/58690766...原创 2021-12-08 16:10:02 · 1121 阅读 · 0 评论 -
使用 Docker 运行 SQL Server 容器映像 在Windows操作系统上,重设置密码和操作数库
快速入门:使用 Docker 运行 SQL Server 容器映像2020/09/07VOGMChoose your command shell适用于: 是SQL Server(所有支持的版本) - Linux备注下面显示的示例使用 docker.exe,但其中的大多数命令也使用 Podman。 它提供与 Docker 容器引擎类似的 CLI。 可以在此处详细了解 Podman。备注自 SQL Server 2019 CU3 起,支持 Ubuntu 18.04。在本快速入门中,请使用转载 2021-04-12 13:24:15 · 707 阅读 · 0 评论 -
C# 根据控件 或者操作句柄进行截图 备忘
#region 使用api32 根据窗体句柄进行截图 /// <summary> /// 此方法仅仅适用于设计器画在pan上的 /// </summary> /// <param name="cot"></param> /// <returns></returns> public Bitmap CutControlBitmap(Contro原创 2021-01-21 10:39:55 · 1511 阅读 · 0 评论 -
C#中通过反射修改 结构体和类的字段值 备忘
此代码是在winform窗体示例 改变类中的字段网上方法很多 属性改变可以和字段差不多,但是结构体是值类型 修改起来有点些麻烦 下面是方法:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Form原创 2020-11-27 09:43:02 · 1159 阅读 · 0 评论 -
C# 公共类 图片压缩(备忘)
using System;using System.Collections.Generic;using System.Text;using System.Drawing.Imaging;using System.IO;using System.Drawing;namespace LibraryCommon{ public class PhotoCompression { //获取图片格式 private static ImageCodecInf原创 2020-11-10 10:16:23 · 113 阅读 · 0 评论 -
C# 公共类 缓存帮助类 (备忘)
using System;using System.Collections.Generic;using System.Text;using System.Threading;namespace LibraryCommon{ public class CacheHelper { #region File private static Dictionary<string, CacheInfo> CacheDictionary = new原创 2020-11-10 10:15:14 · 290 阅读 · 0 评论 -
C# 邮件发送帮助类 可以用此发送邮件【备忘】
/* * Copyright (C) 自由贸易公司出品 * All rights reserved * * 文件摘要:简单邮件发送帮助类,注意:邮箱需要开通【SMTP】, * 目前各邮件运行商在开通都会(发送短信验证),额外生成第三登录密码 * 自己备忘:网易【KDEGTXTTOBTMXKRT】 qq【ngiempjnymzebefc】 wangyi【5664tAgeLk78L1wc】 * * 当前版本: 1.0 * 编写日期: 2020-10原创 2020-11-01 17:33:26 · 418 阅读 · 0 评论 -
C#公共类 可以谈一个顶部警告框,和一个输入Input用户输入对话框(备忘)
using System;using System.Collections.Generic;using System.Text;using System.Windows.Forms;using System.Threading;namespace MessageBoxInfo{ public class MessageTopBox : Form { private MessageTopBox() { } private void Initiali原创 2020-10-31 16:12:34 · 333 阅读 · 0 评论 -
C# 异步编程学习 十六:Value Task<T>
C# 异步编程学习 十六:Value Task1.Value Task 用于微优化场景,您可能永远不需要编写返回此类的方法。2. Task 和 Task 是引用类型, 实例化他们需要基于堆的内存分配和后续的搜集。3. 优化的一种极端形式是编写无需分配此类内存的代码。 换句话说,这不会实例化任何应用类型, 不会给垃圾回收集增加负担。4. 为了支持这种模式,C# 引入了Value Task 和Value Task 这两个struct ,编译器准许他们代替Task 和Task.5. 如果同步完成,则a原创 2020-10-16 16:56:06 · 1115 阅读 · 0 评论 -
C#共享内存技巧
自己备忘使用//在共享内存中一定要做好挥斥信号量的使用,防止多个进程同时进行修改内存,可以吧共享内存作为临界资源处理using System;using System.Collections.Generic;using System.Linq;using System.Runtime.CompilerServices;using System.Runtime.InteropServices;using System.Text;using System.Threading;namespa原创 2020-10-13 14:21:52 · 2916 阅读 · 0 评论 -
C#异步编程 学习 十五: 编写异步函数
编写异步函数对于任何异步函数,你可以使用Task 替代 void 作为返回类型,让该方法成为更有效的异步(可以进行await )并不需要在方法体中显示的返回Task 编译器会生成一个Task (当方法完成或者发生异常),这使得创建异步的调用链非常方便。编译器会对返回Task 的异步函数进行拓展,使其成为当前发送信号或发生故障时使用TaskCompletionSource 来创建Task 的代码。因此, 当返回Task的异步方法结束时候,执行就会跳回对他进行await 的地方。using Sys原创 2020-10-10 14:34:45 · 1379 阅读 · 0 评论 -
C#多线程学习 十四:同步 VS 异步
同步 VS 异步同步操作会返回调用者之前完成它的工作。异步操作会在返回调用者之后去做它的大部分工作。异步的方法为少见 , 会启用并发,因为它的工作会与调用者并行执行。异步方法通常很快(立即) 就会返回调用者 , 所以叫非阻塞方法。目前见到的大部分的异步方法都是通用目的:Thread.Start Task.Run 可以将Continuation 附加到Task的方法。什么是异步编程?异步编程的原则是将长时间运行的函数写成异步的。传统的做法是 将长时间的运行的函数写成原创 2020-10-10 13:38:46 · 606 阅读 · 1 评论 -
C# 异步编程 学习 十三: Task介绍及其示例
Task 的异常与Thread不一样,Task可以很方便的传播异常,如果你的task 里边抛出一个未处理的异常(故障) 那么该异常就会重新被抛出,调用了 Wait() 方法调用了Task 的Result属性方法的地方。using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Threading;原创 2020-10-09 14:23:59 · 715 阅读 · 0 评论 -
C# 异步编程 十二: Task
Thread的问题:线程(Thread) 是用来创建并发(concurrency)的一种低级别工具, 他有一些限制,尤其是:虽然开始线程的时候可以方便的传入数据,但是当Join的时候,就很难从线程获取返回值。可能需要一些共享字段。如果操作抛出异常,捕获和传播异常都比较麻烦。无法告诉线程结束时 开始做另外的工作,你必须进行join操作(在进程中阻塞当前线程) 【自己思考 子线程结束不能能够调回调函数吗??】很难使用较小的并发(concurrent) 来组建大型的并发。导致了对 手动同步的更大依原创 2020-09-30 16:52:51 · 436 阅读 · 0 评论 -
C# 多线程学习 十二: 线程池
线程池:当开始一个新的线程时候,将花费几百微秒来组织一下内容: 一个新的局部变量栈(Stack)线程池可以节省这种开销: 通过预先创建一个可能循环使用的线程池来减少这种开销。线程池对于高校的并行编程和细微度并发是必不可少的。他允许在不被线程启用的开销淹没的情况下运行短期操作。注意:1 . 不可以设置线程名称2 . 线程池都是后台线程。3 . 阻塞线程可能是性能降低4 . 你可以自由更改池线程的优先级,在运行结束后 恢复默认。5 . 可以通过Thread.CurrentThread.I原创 2020-09-30 14:02:00 · 187 阅读 · 0 评论 -
C# 多线程学习 十一:同步上下文
在system.componentModel 下有一个抽象类: SynchronizationContext 他使得Thread Marshaling得到泛型化。针对移动 桌面 等富客户端应用api 他们都定义和实例化了synchronzzationContext的子类可以通过静态属性Synchronizationcontext.Current 来获取(当运行在UI线程是)捕获改属性后你可以供任何子线程通过Post方法想UI主线程发送数据。调用Post就相当于调用Dispath 或Control .原创 2020-09-30 13:35:56 · 511 阅读 · 0 评论 -
C#多线程学习 十:富客户端应用处理耗时操作的一种方法
在WPF WinFrm 等类型程序,如果在主线程执行耗时的操作,就会导致整个程序无响应。针对这样比较耗时的操作,一种做法就是启用一个work线程,操作完成后更新到UI界面上。富客户端应用模型通常是: UI元素和控件只能从他们的线程访问(通常就是主线线程UI)综上所述: 如果想夸线程操作,就需要使用invoke (可以获取 返回值)方法或者beginInvoke方法。把方法执行交给所述对象线程。这样做的好处是,线程之间的安全防护,自己线程的东西自己管理和操作,你要啥或者想操作请交付给我执行。如果不.原创 2020-09-30 11:42:08 · 431 阅读 · 0 评论 -
C#多线程学习 九: 信号简介
有时,你需要让某线程一直处于等待状态,直至接收到其他线程发来的通知,这就叫做signaling(发送信号)最简单的信号结构就是ManualResetEvent 。调用他上面的WaitOne 方法就会阻塞当前线程,直到另一个线程通过调用Set方法,来开启信号。在调用完Set之后, 信号就会打开状态,可以通过调用Reset方法将其再次关闭。for textusing System;using System.Collections.Generic;using System.Linq;..原创 2020-09-30 11:05:29 · 479 阅读 · 0 评论 -
C# 多线程学习 八:线程优先级
线程的优先级(Thread的priority属性)决定了相对操作系统中其他活跃线程执行所占的时间。优先等级为:enum ThreadPriority{Lowest,BelowNormal, Normal, AboveNromal, Highest}提升线程优先级别的时候特别注意,因为他可能“饿死” 其他线程。如果想让某个线程的优先级比其他进程(Process)中的线程(Thread)高 ,那就必须提升进程(Process)的优先级。使用 System.Diagnos 下的Process类。Pr.原创 2020-09-30 10:49:29 · 1743 阅读 · 0 评论 -
C#多线程学习 七:前台后台线程
默认情况下,你手动创建的线程都是前台线程。只要由前台线程在运行,那么应用程序就会一直处于活动状态。但是只有后台线程会跟着主线程结束而结束运行。一旦所有的前台线程停止,那么应用程序就停止工作了。注意:线程的前台和后台状态与他们的优先级没有关系(锁分配是时间)可以通过Isbackground 属性来判断该线程是否是后台线程。进程以这种形式终止的时候,后台线程执行栈中的finally块就不会在执行了。如果想让他执行,可以在退出程序时使用join来等待后台线程(如果是你自己创建的线程) 或者使用si.原创 2020-09-30 10:24:36 · 434 阅读 · 0 评论 -
C# 多线程学习 六: 向线程传递数据和异常处理
向线程传递数据:如果你想往线程的启动方法中传递参数,最简单的办法是使用lambda表达式,在里边使用参数调用方法。在C#3.0之前没有lambda 表达式,可以使用Thread的Stat方法来传递参数。For text Oneusing System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;namespace ConsolePlan{原创 2020-09-28 16:16:12 · 319 阅读 · 0 评论 -
C# 多线程 五: 线程安全
上节的例子,实际上是无法确定的,例如下面代码:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;namespace ConsolePlan{ class Program { private const string MainThreadName = "MainThread"; stati原创 2020-09-28 15:27:54 · 529 阅读 · 0 评论 -
C# 多线程学习 四:本地vs共享状态
local 本地独立CLR为每个线程分配自己的内存栈(stack) 以便是本地变量保持独立for Textusing System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;namespace ConsolePlan{ class Program { private static TimeSpan SleepTim原创 2020-09-28 15:14:12 · 272 阅读 · 0 评论 -
C# 多线程学习 三: 阻塞
阻塞:如果线程在执行由于某种原因导致暂停,name就认为该线程被阻塞了。例如:在Sleep和join等其他线程结束被阻塞的线程会立即将其处理器的时间片生成给其他线程,从此就不在消耗处理器时间,直到满足其阻塞条件为止。可以通过ThreadState这个状态判断线程是否处于被阻塞状态bool blocked = (thread.ThreadState & ThreadState.WaitSleepJoin) != 0;TheradState:ThreadState 是一个Flags E原创 2020-09-28 13:26:40 · 4288 阅读 · 0 评论 -
C# 多线程学习 二:join()和Sleep()
join and sleep调用join()方法,就可以等待另一个线程结束。调用join(参数) ,可以设置一个超时,用毫秒或者TimeSpan. 此时有返回值 在超时时间内,如果线程执行结束了返回true 否falseThread.Sleep(参数)方法。 线程阻塞,到设定时间后继续执行。注意:Thread.Sleep(0) 这样调用会导致线程会立即放弃本身当前时间片,自动将CPU移交给其他线程。和Thread.YieId()做同样事。 但是YIEID只会把执行交给同一处理器的其他线程原创 2020-09-28 11:25:17 · 867 阅读 · 0 评论 -
学习C#异步编程 一:创建线程
什么是线程?线程是一个可执行路径,它可以独立于其他线程执行。每个线程都是在操作系统的进程(process)内执行的,而且操作系统进行提供程序提供独立的运行环境。单线程应用,在进程独立环境中只跑一个线程,所以该线程拥有独立占有权。多线程应用,单个进程中会跑多个线程,他们会共享当前的执行环境(尤其是内存)例如:一个线程后台读取数据,另一个线程在数据到达后进行展示。 for textusing System;using System.Collections.Generic;原创 2020-09-28 10:41:55 · 345 阅读 · 0 评论 -
C#网口通信和串口数据互相转发
最近闲来无事写了一个串口转网口的模拟机程序:实现原理创建tcpserver监听端,接收客户端发送过来的信息,在通过com口转发出去。同样收到串口数据在通过服务端转发给客户端 如图串口发送端代码:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text原创 2020-09-27 10:07:03 · 4826 阅读 · 0 评论 -
配置编辑器工具 (SvcConfigEditor.exe)位置和简介
配置编辑器工具 (SvcConfigEditor.exe)通过 Windows Communication Foundation (WCF) 服务配置编辑器 (SvcConfigEditor.exe),管理员和开发人员可以使用图形用户界面来创建和修改 WCF 服务的配置设置。 利用此工具,您不必直接编辑 XML 配置文件就可管理 WCF 绑定、行为、服务和诊断的设置。在 C:\Program Files\Microsoft SDKs\Windows\v6.0\Bin 文件夹中可以找到服务配置编辑器。原创 2020-09-16 15:05:54 · 1493 阅读 · 0 评论 -
C#关于批量设置Excel打开打开密码的方法
已为您找到关于c#给excel设置密码相关内容,包含c#给excel设置密码相关文档代码介绍、相关教程视频课程,以及相关c#给excel设置密码问答内容。为您.思路主要使用微软官网插件,应为第三方的npoi 等 无法对整个工作簿进行设置密码。用的动态库 Microsoft.Office.Interop.Excel.dll软件截图部分代码: private void LVShowInfo_DragDrop(object sender, DragEventArgs e) {原创 2020-09-04 18:03:07 · 871 阅读 · 0 评论 -
C#文本框拖拽获取文件路径
先改变一下文本框属性: //开始拖拽 private void txtLogPath_DragEnter(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.FileDrop)) { e.Effect = DragDropEffects.Link; }原创 2020-08-04 16:30:33 · 676 阅读 · 0 评论 -
C#中的事件案例
C#事件是一种更为安全的委托,事件只能在事件对象内部调用,外部类如果使用只能对事件的进行【-=】和【+=】操作。下面示例:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;namespace PriceText{ public class PriceChangeEventArges : EventArgs {原创 2020-07-29 13:42:37 · 442 阅读 · 0 评论 -
C#的TCP的及时通信DEMO
闲来没事写一个C#的TCP的及时通信,可以在不同的相同机器上运行:全部代码如下using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Threading;using Sy原创 2020-07-28 11:00:41 · 547 阅读 · 0 评论 -
获取同局域网的IP地址Mack地址
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Diagnostics;using System.Text.RegularExpressions;namespace NameText{ public class Common { /// <summary> /// 执行CMD命令 并返回结果原创 2020-07-22 15:41:59 · 325 阅读 · 0 评论 -
C# NAudio检测声音
using NAudio.Wave;using System;using System.Collections.Generic;namespace WinFromBaidu{ class NAudioRecorder { #region var /// <summary> /// 录音机对象 /// </summary> public WaveIn waveSource = n原创 2020-07-17 10:58:26 · 2811 阅读 · 0 评论 -
C#的UDP组播聊天会议室 DEMO
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Threading;using System.Net.Sockets;using System.Net;nam原创 2020-07-16 12:18:29 · 468 阅读 · 0 评论