C#中的数组是由System.Array类衍生出来的引用对象,因此可以使用Array类中的各种方法对数组进行各种操作。一维数组:using System; using System.Collections.Generic; using System.Text; using System.Collections; namespace Console ......
413
0
0
2023-02-14
目录委托的使用案例事件的使用案例带参数的事件案例回调函数的使用案例委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。事件是对委托的封装。如果不进行封装,让委托暴露给调用者,调用者就可以把委托变量重新引用到新 ......
437
0
0
2023-02-12
目录C#调用python脚本方式一方式二方式三方式四方式五C#调用python脚本在平常工程项目开发过程中常常会涉及到机器学习、深度学习算法方面的开发任务,但是受限于程序设计语言本身的应用特点,该类智能算法的开发任务常常使用Python语言开发,所以在工程实践过程中常常会遇到多平台程序部署问题。本文总结了C#调用Python程序的各种方法,希望能够给各位读者 ......
873
0
0
2023-02-06
在项目开发过程中,我们经常会访问第三方接口,如我们需要接入的第三方接口是Web API,这时候我们就需要使用HttpHelper调用远程接口了。示例中的HttpHelper类使用Log4Net记录了每次调用的请求内容和响应内容的日志,并且每条日志都带上了链路ID和标识,这样方便我们在排查问题时能快速的找到当时的请求和响应内容,进而定位分析问题。大家在使用的时 ......
439
0
0
2023-02-05
目录介绍Version 1 - 非线程安全Version 2 - 简单的线程安全Version 3 - Double-check locking的线程安全Version 4 - 不完全懒汉式,但不加锁的线程安全Version 5 - 完全懒汉实例化Version 6 - 使用.NET 4 Lazy type 特性性能 VS 懒汉式Exception ......
434
0
0
2023-02-03
目录一、背景二、实现原理1. 基本思路2. 案例演示3. 自定义注入三:总结一、背景前段时间在训练营上课的时候就有朋友提到一个问题,为什么 Windbg 附加到 C# 程序后,程序就处于中断状态了?它到底是如何实现的?其实简而言之就是线程的远程注入,这一篇就展开说一下。二、实现原理1. 基本思路WinDbg 在附加进程的时候,会注入一个线程到 C# ......
360
0
0
2023-02-03
目录01.点明观点02.C#中,using的两个作用03.using如何实现资源释放04.实践探索05.总结01.点明观点C#中,非托管资源使用之后必须释放,而using()是使用非托管资源的最佳方式,可以确保资源在代码块结束之后被正确释放,并且代码更简洁。这里说的非托管资源指的是实现IDisposable或IAsyncDisposable接口的类。usin ......
314
0
0
2023-02-01
1.Overview经常研究.NET源码库的小伙伴会经常看到一个关键字volatile,那它在开发当中的作用是什么呢?我们一起来看看官方文档里是怎么描述的,如下:“volatile 关键字指示一个字段可以由多个同时执行的线程修改。出于性能原因,编译器,运行时系统甚至硬件都可能重新排列对存储器位置的读取和写入。声明为 volatile 的字段将从某些类型的优化 ......
502
0
0
2023-01-09
以下文章来源于精致码农 ,作者liamwang现代应用程序广泛使用的是基于任务的异步编程模式(TAP),历史的 EAP 和 AMP 模式已经过时不推荐使用。今天继续总结一下 TAP 的异步操作,比如取消任务、报告进度、Task.Yield()、ConfigureAwait() 和并行操作等。虽然实际 TAP 编程中很少使用到任务的状态,但它是很多 TAP 操 ......
344
0
0
2023-01-09
以下文章来源于CSharp编程大全 ,作者zls365Stream.Read 方法当在派生类中重写时,从当前流读取字节序列,并将此流中的位置提升读取的字节数。语法:public abstract int Read(byte[] buffer, int offset, int count)参数:buffer: 字节数组。此方法返回时,该缓冲区包含指定的字符数组 ......
425
0
0
2023-01-09
一、概要本文主要讲解在c#中lock关键字的用法以及需要注意的坑。帮助大家避免使用不当造成的bug。作用:lock 关键字可以用来确保代码块完成运行,而不会被其他线程中断。它可以把一段代码定义为互斥段(critical section),互斥段在一个时刻内只允许一个线程进入执行,而其他线程必须等待。这是通过在代码块运行期间为给定对象获取互斥锁来实现的。在多线 ......
516
0
0
2023-01-09
一、概要大家好,本次继续分享自己的学习经历。本文主要分享Task异步编程内容,如果能帮助大家希望多多关注文章末尾的微信公众号和知乎三连。各位举手之劳是对我更新技术文章最大的支持。二、详细内容1.同步异步同步操作会在返回调用者之前完成它的工作异步操作会在返回调用者之后去做它的工作异步的方法更为少见,会启用并发,因为他的工作会与调用者并行执行目前见到的大部分的异 ......
470
0
0
2023-01-09
一、概要大家好,本次继续分享自己的学习经历。本文主要分享异步编程中Task的使用,如果能帮助大家希望多多关注文章末尾的微信公众号和知乎三连。各位举手之劳是对我更新技术文章最大的支持。个人心得:Task是一个升级版本的Thread的类,它非常的灵活支持取消、阻塞等待、合并多个Task协同操作、编码高效易懂、异常传播、回调传递结果或调用方法等。本文相关文献查阅地 ......
398
0
0
2023-01-09
c#异步编程-线程近期会分享自己学习c#异步编程系列的文章,如果能帮助大家希望多多关注文章末尾的微信公众号和知乎三连。各位举手之劳是对我更新技术文章最大的支持。1.线程线程是一个可执行的路径,它可以独立于其他线程执行。每个线程都在操作系统的进程内执行,而操作系统进程提供了程序运行的独立环境。单线程应用,在进程的独立环境里只跑一个线程,所以该线程拥有独占权。多 ......
485
0
0
2023-01-09
作者:码云 Gitee链接:https://www.zhihu.com/question/27993498/answer/1014561869来源:知乎除了微软本家的还有啥好的项目推荐哇(⊙o⊙)?据说很多被迫使用 C# 的人最后都真香了?C# 确实有很多让人惊艳的地方,如果想要学习C#语言,多找几个开源项目进行实践,必能事半功倍。下面推荐几个 Gitee ......
385
0
0
2023-01-09