`
wyf
  • 浏览: 436546 次
  • 性别: Icon_minigender_1
  • 来自: 唐山
社区版块
存档分类
最新评论
文章列表
自定义集合类是一个基本优先级别队列,优先级别在其中表示为 System.Collections.Concurrent.ConcurrentQueue<T> 对象的数组。在每个队列中不进行其他排序。通过实现类中的 System.Collections.Concurrent.IProducerConsumerCollection<T> 接口,然后将类实例用作 System.Collections.Concurrent.BlockingCollection<T> 的内部存储机制,来向自定义集合类添加限制和阻塞功能。 namespace ProdConsumerC ...
定义: //此赋值会创建其成员为 Item1 和 Item2 的元组,其使用方式与 Tuple 的相同。 var letters = ("a", "b"); //namedLetters 元组包含称为 Alpha 和 Beta 的字段。 (string Alpha, string Beta) namedLetters = ("a", "b"); //还可以指定赋值右侧的字段的名称 var alphabetStart = (Alpha: "a", Beta: "b&q ...
using System; using System.Reflection; using System.Reflection.Emit; public class Example { // The following constructor and private field are used to // demonstrate a method bound to an object. private int test; public Example(int test) { this.test = test; } //1、声明用 ...

泛型反射

    博客分类:
  • C#
检查泛型类型及其类型参数 1、获取泛型类型 //类型1 Type d1 = typeof(Dictionary<,>); Dictionary<string, Example> d = new Dictionary<string, Example>(); //类型2 Type d2=d.GetType();  2、判断是否为泛型,是否为泛型类型定义 Console.WriteLine(" Is this a generic type? {0}", d1.IsGenericType); //IsGener ...
一、随事件一起发送自定义数据且不使用泛型 1、如果随事件一起发送自定义数据,将自定义数据的类声明为对发布服务器和订阅者类均可见的范围。 然后添加所需成员以保留自定义事件数据。 在此示例中,将返回一个简单的字符串。 public class CustomEventArgs : EventArgs { public CustomEventArgs(string s) { msg = s; } private string msg; public string Message { ...
1、在 C# 1.0 和更高版本中,可以如下面的示例所示声明委托。 // Declare a delegate. delegate void Del(string str); // Declare a method with the same signature as the delegate. static void Notify(string name) { Console.WriteLine("Notification received for: {0}", name); }   // Create an instance of the ...
1、限制可同时访问某一资源或资源池的线程数。  SemaphoreSlim为Semaphore 的轻量替代 使用:实例化一个初始值0最大值3 private static Semaphore _pool; _pool = new Semaphore(0, 3);  _pool.Release(3);
1、从 .NET Framework 4 开始,.NET Framework 在协作取消异步操作或长时间运行的同步操作时使用统一的模型。 此模型基于被称为取消标记(CancellationTokenSource)的轻量对象。 调用一个或多个可取消操作的对象(例如通过创建新线程(Thread)或任务(Task))将标记传递给每个操作。 2、用于实现协作取消模型的常规模式是: 实例化 CancellationTokenSource 对象,此对象管理取消通知并将其发送给单个取消标记。 将 CancellationTokenSource.Token 属性返回的标记传递给每个侦听取 ...
1、 System.Threading.Barrier 是同步基元,可以使多个线程(称为“参与者”)分阶段同时处理算法。 达到代码中的屏障点之前,每个参与者将继续执行。 屏障表示工作阶段的末尾。 单个参与者到达屏障后将被阻止,直至所有参与者都已达到同一障碍。 所有参与者都已达到屏障后,你可以选择调用阶段后操作。
1、BlockingCollection 为实现 IProducerConsumerCollection<T> 的线程安全集合提供阻塞和限制功能。 实现了 IProducerConsumerCollection<T> 接口的有:ConcurrentStack, ConcurrentQueue, and ConcurrentBag。 如果初始化BlockingColloction的时候不指定IProducerConsumerCollection<T>。则默认为
1、Mutex 互斥锁 Mutex mut = new Mutex(); ... mut.WaitOne(); ... mut.ReleaseMutex();//释放锁  只能有一个线程 进入执行逻辑 if (mut.WaitOne(1000)) { //等待一个时间,超过时间将返回false // Simulate some work. Thread.Sleep(5000); // Release the Mutex. mut.ReleaseMutex(); ...
1、webapi 网关: Ocelot github:https://github.com/ThreeMammals/Ocelot 路由、服务聚合、服务发现、认证、鉴权、限流、熔断、缓存、Header头传递等   2、弹性和瞬态故障处理库 Polly github:https://github.com/App-vNext/Polly 允许开发人员以顺畅及线程安全的方式执行重试(Retry),断路器(Circuit),超时(Timeout),隔板隔离(Bulkhead Isolation)及后背策略(Fallback)。 3、在线调试WebApi Swagger Inst ...
ASP.NET Core中的cookies 认证不支持传递jwt。需要自定义实现 ISecureDataFormat接口的类。现在,你只是验证token,不是生成它们,只需要实现Unprotect方法,其他的交给System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler这个类处理。 using System; using System.IdentityModel.Tokens.Jwt; using System.Security.Claims; using Microsoft.AspNetCore.Authentication; u ...

JRE与JDK的区别

    博客分类:
  • java
1. 定义JRE(Java Runtime Enviroment)是Java的运行环境。面向Java程序的使用者,而不是开发者。如果你仅下载并安装了JRE,那么你的系统只能运行Java程序。JRE是运行Java程序所必须环境的集合,包含JVM标准实现及 Java核心类库。它包括Java虚拟机、Java平台核心类和支持文件。它不包含开发工具(编译器、调试器等)。JDK(Java Development Kit)又称J2SDK(Java2 Software Development Kit),是Java开发工具包,它提供了Java的开发环境(提供了编译器javac等工具,用于将java文件编译为cla ...

柯里化函数

    博客分类:
  • JS
function curry(fn){ var args = Array.prototype.slice.call(arguments, 1); return function(){ var innerArgs = Array.prototype.slice.call(arguments); var finalArgs = args.concat(innerArgs); return fn.apply(null, finalArgs); }; }  Demo function add(num1, num2){ return num1 + num2; } ...
Global site tag (gtag.js) - Google Analytics