分类 C# 下的文章

C#使用FluentEmail发送邮件

在实际的项目开发中,我们会遇到很多需要通过程序发送邮件的场景,比如邮件注册时发送验证码,系统异常报警等, 今天给大家介绍一下FluentEmail, FluentEmail是一款在GitHub上开源免费的支持.Net和.Net Core邮件发送组件,目前已有2.1k的star,它的功能非常强大且实用使用也比较简单。

阅读剩余部分

C#读写锁ReaderWriterLockSlim的使用过程

   读写锁的概念很简单,允许多个线程同时获取读锁,但同一时间只允许一个线程获得写锁,因此也称作共享-独占锁。在C#中,推荐使用ReaderWriterLockSlim类来完成读写锁的功能。

    某些场合下,对一个对象的读取次数远远大于修改次数,如果只是简单的用lock方式加锁,则会影响读取的效率。而如果采用读写锁,则多个线程可以同时读取该对象,只有等到对象被写入锁占用的时候,才会阻塞。

阅读剩余部分

C#可变参数params的介绍

作为一个netUp主,今天在b站刷到了java的一个视频,可变参数的介绍,所以今天给大家介绍一下c#中可变参数params的使用介绍,

我们首先看一下官方解释: 使用 params 关键字可以指定采用数目可变的参数的params。参数类型必须是一维数组。在方法声明中的 params 关键字之后不允许有任何其他参数,并且在方法声明中只允许有一个 params 关键字。如果 params 参数的声明类型不是一维数组,则会发生编译器错误 params。使用 params 参数调用方法时,可以传入:

阅读剩余部分

C#多线程并发下各种锁的性能

一般情况下,只要涉及到多线程编程,程序的复杂性就会显著上升,性能显著下降,BUG出现的概率大大提升。

多线程编程本意是将一段程序并行运行,提升数据处理能力,但是由于大部分情况下都涉及到共有资源的竞争,所以修改资源对象时必须加锁处理。但是锁的实现有很多种方法,下面就来一起了解一下在C#语言中几种锁的实现与其性能表现。

阅读剩余部分