CSHARP
文章平均质量分 55
工作中用到C#开发项目,一些知识需要学习,可是选择一本书按部就班也许太耗时间了。就在解决问题的过程中,来学习吧。把一些用到搜集到的,觉得好的思路或者想法记录在这里。
零点零一
Make it right before you make it faster. Keep it right when you make it faster. Make it clear before you make it faster. Do not sacrifice clarity for small gains in efficiency. -- Brian Kernighan
展开
-
C# RichTextBox的用法
由此可知,WordWrap为false时,即使文本超过RichTextBox的宽度,也不会自动换行到下一行,只有用户输入回车时才会换行,并且当文本超过RichTextBox的宽度后,才会显示水平滚动条。(此项属性在TextBox亦可实现)由此可见,WordWrap为true时,一旦文本超过RichTextBox的宽度时,就会自动换行到下一行,自然不需要用到水平滚动条,也就不显示出来了。1、Both:只有当文本超过RichTextBox的宽度或长度时,才显示水平滚动条或垂直滚动条,,或两个滚动条都显示。转载 2022-09-08 10:20:12 · 3344 阅读 · 0 评论 -
C# semaphore 可以启动多个线程来处理资源竞争
用来控制多个线程来等待资源分别做完各自的业务处理完成using System;using System.Threading;public class Example{ // A semaphore that simulates a limited resource pool. // private static Semaphore _pool; // A padding interval to make the output more orderly.原创 2022-05-16 18:23:40 · 278 阅读 · 0 评论 -
C# 处理业务等待多个状态达到的技术实现:WaitHandle 类
要实现一个业务逻辑,根据设备某个时刻发出的信息要进入一种开启业务处理,使用WaitHandle 类参考定义命名空间:System.Threading程序集:System.Runtime.dll封装等待对共享资源进行独占访问的操作系统特定的对象。如下是微软的例子:using System;using System.Threading;public sealed class App{ // Define an array with two Au原创 2022-05-16 16:51:09 · 380 阅读 · 0 评论 -
C#使用 System.Threading.Timer定时器是新线程,不会阻塞窗口线程
static void Run() { System.Threading.Timer timer = new System.Threading.Timer(DoTime, null, 1000, 10000); } static void DoTime(object obj) { MessageBox.Show("OK!"); Thread.Sleep(...原创 2022-04-02 15:58:41 · 1968 阅读 · 0 评论 -
C#内的条件编译
项目中有些内容调试版本和发行版本的是有差别的,这就需要用到条件编译。C#的条件编译和CC++的有不同:C#的条件编译:#if DEBUG MyLog.Example();#endifC++的条件编译:#ifdef 标识符 程序片段1#else 程序片段2#endif更详细的在这里需要用到复杂的再研究C# 条件编译 - lindexi - 博客园有一部分代码只是用来调试使用,不期望在发布的...https://www.cn...原创 2022-03-02 11:23:19 · 1157 阅读 · 0 评论 -
初级C#连接MySQL数据库
VS2019 快速实现 C# 连接 MySQL 数据库并实现基本操作代码 - RioTian - 博客园一、工具: Visual Studio 2019 MySQL 数据库 二、添加动态链接: Visual Studio 中选择项目-> 管理NuGet程序包(N) → 然后在浏览里面搜索 MySqhttps://www.cnblogs.com/RioTian/p/15581594.html安装MySql for Visual Studio的坑_slinace的博客-CSDN博客安装MySql for原创 2022-03-01 11:50:06 · 659 阅读 · 0 评论 -
C# Form程序像C++ 那样使用 SendMessage方法给窗口发送消息
想实现VC编程的中,像C++ 那样使用 SendMessage方法给窗口发送消息。于是查找一下文献:参考:[转] C#中发送消息给指定的窗口,以及接收消息 - wenglabs - 博客园记录实现步骤如下:建立Note类:using System;using System.Runtime.InteropServices;namespace WindowsFormsApp2{ public class Note { //声明 API 函数原创 2022-02-28 14:38:07 · 2660 阅读 · 0 评论 -
C# 开发过程中尚未解决的问题记录
NuGet在C#中是什么?NuGet是VS开发工具里面的。点击菜单“工具”-->“NeGet包管理器”?怎么用来管理程序包?看到网文有说“使用管理NuGet程序包导入log4net.dll”。Log4net在C#桌面程序里面怎么使用?通过阅读如下文件可以解决这些疑问;C# log4net 使用改文章展示了添加log4net的使用方法。决定建立个新工程测试一下。...原创 2022-02-23 15:37:09 · 238 阅读 · 0 评论 -
C# 项目中目录 bin和obj的区别版本Debug和Release的区别
C# 项目中的 bin 目录和 obj 目录的区别,以及 Debug 版本和 Release 版本的区别1.关于 bin 目录和 obj 目录bin 目录用来保存项目生成后程序集,它有 Debug 和 Release 两个版本,分别对应的文件夹为 bin/Debug 和 bin/Release,这个文件夹是默认的输出路径,我们可以通过:项目属性—>配置属性—>输出路径来修改。obj 目录是用来保存每个模块的编译结果,在 .NET 中,编译是分模块进行的,编译整个完成后会合并为一个 .转载 2022-02-23 13:53:21 · 815 阅读 · 0 评论 -
C#委托事件和线程结合使用的加深学习
在C#语言中,委托则委托某个方法来实现具体的功能。委托是一种引用类型,虽然在定义委托时与方法有些相似,但不能将其称为方法。委托在使用时遵循三步走的原则,即定义声明委托、实例化委托以及调用委托。从数据结构来讲,委托是和类一样是一种用户自定义类型。委托是方法的抽象,它存储的就是一系列具有相同签名和返回回类型的方法的地址。调用委托的时候,委托包含的所有方法将被执行。如下代码来之:C#事件:Eventusing System;class Program{ //定义委托 ...原创 2022-02-17 17:33:04 · 417 阅读 · 0 评论 -
C#项目再次开发-再次温习高级特征
项目还是要再完成的C#高级特征还是学的本次继续学习菜鸟教程C#高级教程C#特性(Attribute)特性(Attribute)是用于在运行时传递程序中各种元素(比如类、方法、结构、枚举、组件等)的行为信息的声明性标签。您可以通过使用特性向程序添加声明性信息。一个声明性标签是通过放置在它所应用的元素前面的方括号([ ])来描述的。特性(Attribute)用于添加元数据,如编译器指令和注释、描述、方法、类等其他信息。.Net 框架提供了两种类型的特性:预定义特性和自定义特性。.原创 2022-02-17 16:07:53 · 316 阅读 · 0 评论 -
C# 中的Async 和 Await 的用法学习研究
作者:依乐祝原文链接:C# 中的Async 和 Await 的用法详解 - 依乐祝 - 博客园摘要:在本文中,我们将共同探讨并介绍什么是Async 和 Await,以及如何在C#中使用Async 和 Await。我测试的时候修改了第一个例子如下:using System;using System.Threading;using System.Threading.Tasks;class Program{ static void Main(string[] args)..原创 2022-02-16 18:23:26 · 325 阅读 · 0 评论 -
C# AcceptTcpClientAsync建立服务代码例子解读涉及到 C# async/await异步编程
using System;using System.Threading.Tasks;using System.IO;using System.Net;using System.Net.Sockets;using System.Threading;namespace TCPping_pong{ class TcpDemo { static async void RunServerAsync() { var listen.原创 2022-02-16 17:52:59 · 1082 阅读 · 0 评论 -
C#建立阻塞同步模式的TcpClient的例子分析
static void Client() { using (TcpClient client = new TcpClient("localhost", 51111)) using (NetworkStream n = client.GetStream()) { BinaryWriter w = new BinaryWriter(n); fo...原创 2022-02-16 17:32:37 · 1035 阅读 · 0 评论 -
C# 建立Tcp 的 异步模式的客户端和服务器端例子
本文探讨 C# 建立Tcp 的 异步模式的客户端和服务器端例子TcpListener.AcceptSocketAsync 方法TcpListener.AcceptTcpClientAsync 方法这两个方法怎么用呢?原创 2022-02-17 11:44:42 · 1433 阅读 · 0 评论 -
C# 建立Tcp 的 阻止同步模式的客户端和服务器端例子
1,这是MSDN的使用TcpListener建立TcpServer的同步方法,读socket的时候会堵塞using System;using System.IO;using System.Net;using System.Net.Sockets;using System.Text;class MyTcpListener{ public static void Main() { TcpListener server = null; try原创 2022-02-16 16:36:51 · 1312 阅读 · 0 评论 -
C#一个线程等待另一个线程的信号和携带的消息数据
问题:C#如何实现一个线程等待另一个线程的信号和携带的消息数据?或者换个描述:C#如何实现给另一个线程发送信号和数据呢?RegisteredWaitHandle 类可以用来实现:例子如下:RegisteredWaitHandle 类 (System.Threading) | Microsoft Docs示例演示如何使用RegisteredWaitHandle来确定调用回调方法的原因,以及如何在回调由于等待句柄发出信号而发生回调时取消注册任务。该示例还演示了如何使用Reg...原创 2022-02-16 10:42:02 · 1298 阅读 · 0 评论 -
C# 唯一进程启动 Mutex在跨进程中怎么使用?
在系统中如何实现一个程序只运行一个进程,实现的方法如下:bool createNew;Mutex mt = new Mutex(true, “ApplicationMutex”, out createNew);使用Mutex就可以实现c#Mutex的用法总结_上位机软件的博客-CSDN博客_c# mutex1、Mutex在线程中的使用;2、Mutex在进程中的使用;https://blog.csdn.net/qq_34059233/article/details/1060437441)防止原创 2022-02-16 09:57:46 · 711 阅读 · 0 评论 -
C# 作为全局的变量怎么实现?
C# 作为全局的变量怎么实现?原创 2022-02-15 16:59:34 · 3076 阅读 · 0 评论 -
C#线程等待另一个线程完成任务的操作方法
在多线程任务里面,在当前线程执行操作,要等待另一个线程接收到信息的时候,使用那些技术呢?探索如下:1,使用AutoResetEventusing System;using System.Threading;class WaitOne{ static AutoResetEvent autoEvent = new AutoResetEvent(false); static void Main() { Console.WriteLine("Work met原创 2022-02-15 15:23:13 · 4447 阅读 · 0 评论 -
VS2019 c#建立的目标框架 .NET CORE3.1和 .NET 5.0区别是什么?
VS2019 c#建立的目标框架 .NET CORE3.1和 C#5.0区别是什么?原创 2022-02-15 14:29:11 · 3502 阅读 · 0 评论 -
C#获取当前日期时间(转)
C#获取当前日期时间(转)http://blog.163.com/ljq086@126/blog/static/549639712010112921658843/我们可以通过使用DataTime这个类来获取当前的时间。通过调用类中的各种方法我们可以获取不同的时间:如:日期(2008-09-04)、时间(12:12:12)、日期+时间(2008-09-04 12:11:10)等。//获取日期+时间DateTime.Now.ToString(); // 2008-9-...转载 2021-08-04 13:42:31 · 7154 阅读 · 0 评论 -
NetworkStream 在Socket编程中的使用
以下内容摘自vs帮助的备注:NetworkStream 类提供在阻止模式下通过 Stream 套接字发送和接收数据的方法。 有关阻止与非阻止 Socket 的更多信息,请参见 使用异步客户端存储。 可以在同步和异步数据传输时使用 NetworkStream 类。 有关同步和异步通信的更多信息,请参见 套接字。若要创建 NetworkStream,必须提供连接的 Socket。 也可指定 NetworkStream 对所提供的 Socket 具有哪些 FileAccess 权限。 默认情况下,关闭 N转载 2021-07-30 17:08:28 · 774 阅读 · 0 评论 -
C# 消息队列
C# 消息队列简单例子https://blog.csdn.net/qq_37580539/article/details/11601430这是个不错的入门C#消息队列的文章,下面是根据文章测试的代码部分using System;//需要对项目添加引用,搜索Messageing引用添加即可using System.Messaging;namespace arr{ class SynchronousMsgQ { static void Main(strin原创 2021-07-30 10:19:42 · 3651 阅读 · 0 评论 -
主线程,子线程,前台线程和后台线程
using System;using System.Threading;using System.Threading.Tasks;namespace MultithreadingApplication{ class ThreadCreationProgram { public static void CallToChildThread() { Console.WriteLine("Child thread starts");.原创 2021-07-28 14:40:39 · 686 阅读 · 0 评论 -
C# 格式化输出
https://www.cnblogs.com/arxive/p/5744823.html转载 2021-07-28 10:27:04 · 616 阅读 · 0 评论 -
Log4Net 和SharpSocket
log4net.dll使用https://blog.csdn.net/yangchun1213/article/details/7556433摘要:一. Log4Net 简介Log4net 是 Apache 下一个开放源码的项目,它是Log4j 的一个克隆版。我们可以控制日志信息的输出目的地。Log4net中定义了多种日志信息输出模式。在做项目的时候令我最头疼的是在程序发布到正式环境之后出现了问题,我们不能调试而且问题很难重新,于是我们需要大量的日志数据来精确的跟踪程序的运行状况。..原创 2021-07-23 11:08:33 · 219 阅读 · 0 评论