大师网-带你快速走向大师之路 解决你在学习过程中的疑惑,带你快速进入大师之门。节省时间,提升效率

.NetCore利用BlockingCollection实现简易消息队列

public DemoQueueBlock() { } public static bool IsComleted() { if (Colls ! } public static bool HasEle() { if (Colls ! } Colls.Add(msg); } public static T Take() { if (Colls == null) { Colls = new BlockingCollection (); } return Colls.Take();Add(new DemoMessage() { BusinessId = read }); Console.WriteLine("已消费:" + m.BusinessId); 查看运行结果 运行结果 这样我们就实现了简易的消息队列。 示例源码 简易队列 参考链接 BlockingCollectionOrleans源码分析

ABP 源码解析 一. ABP启动

// 设置Ioc管理器 IocManager = options.IocManager; /// 启动模块类 /// /// An action to set options /// 启动选项 /// public static AbpBootstrapper Create ([CanBeNull] Action optionsAction = null) where TStartupModule : AbpModule { return new AbpBootstrapper(typeof(TStartupModule), optionsAction); } } [DependsOn(typeof(MyOtherModule))] [DependsOn(typeof(MyAnotherModule))] public class MyTestModule : MyEventCounterModuleBase { private readonly MyOtherModule _otherModule;

.Net 4.X 提前用上 .Net Core 的配置模式以及热重载配置

} 假设我们有一个这样的 "appsetting.json" 文件: { "RedisConfiguration": { "InstanceDbId": 14, "InstanceRedisConnectionString": "127.0.0.1" }, "MongoDbConfiguration": { "ConnectionString": "mongodb://127.0.0.1:27017/? } public string DatatabaseName { get;Net Core 更多的了解,以及感受两者的对比,可以对照我之前写过的一篇 文章 。对于热重载配置,.Net Core 中更多是使使用 IOptionsSnapshot ,而为了尽量少地引入 .

C#/.NET中泛型对象集合(List)转换成二维数组对象的静态扩展方法(Lambda参数支持对象的任意属性)

} } 并有一个相关的泛型集合: _categories = new List { new Category{Id=1,Language="C#",Alias="csharp"}, new Category{Id=2,Language="C",Alias="c"}, new Category{Id=3,Language="C++",Alias="cpp"}, new Category{Id=4,Language="Javascript",Alias="javascript"} }; static void Main(string[] args) { BuildData(); DoTest(); /* * 输出结果: * [[1,"C#"],[2,"C"],[3,"C++"],[4,"Javascript"]] */ //读取ID,Language,Alias属性 array = _categories.To2DArray(x = x.Id, x = x.Language, x = x.Alias);

用VUEJS做一个网易云音乐

if (isPost) { // 写入post请求包 byte[] formData = Encoding.UTF8.GetBytes(@params);flag) { state.songList.push(item) state.currentIndex = state.songList.length } }, setLrc (state, lrc) { state.lyric = lrc } }, // 异步的数据操作 actions: { getSong ({commit, state}, id) { commit('openLoading') Axios.get(api.getSong(id)).url commit('setAudio') commit('setLocation', url) }) }, getLrc ({commit, state}, id) { commit('setLrc', '[txt](加载中。。。') Axios.get(api.getLrc(id)).

C#枚举类型常用扩展方法(三)

attrs[0]. // 输出:星期六 三、自定义特性 声明一个class并继承Attribute: public class StringValueAttribute : Attribute { public StringValueAttribute(string value) { this.StringValue = value; namespace Lin.EnumExt { public static class EnumExtensions { /// /// 获取特性 (DisplayAttribute) 的名称;如果未使用该特性,则返回枚举的名称。 /// /// /// public static string GetDisplayName(this Enum enumValue) { FieldInfo fieldInfo = enumValue.GetType().

用VUEJS做一个网易云音乐(基于2.x)

if (isPost) { // 写入post请求包 byte[] formData = Encoding.UTF8.GetBytes(@params);flag) { state.songList.push(item) state.currentIndex = state.songList.length } }, setLrc (state, lrc) { state.lyric = lrc } }, // 异步的数据操作 actions: { getSong ({commit, state}, id) { commit('openLoading') Axios.get(api.getSong(id)).url commit('setAudio') commit('setLocation', url) }) }, getLrc ({commit, state}, id) { commit('setLrc', '[txt](加载中。。。') Axios.get(api.getLrc(id)).

用VUEJS(2.x)做一个网易云音乐

if (isPost) { // 写入post请求包 byte[] formData = Encoding.UTF8.GetBytes(@params);flag) { state.songList.push(item) state.currentIndex = state.songList.length } }, setLrc (state, lrc) { state.lyric = lrc } }, // 异步的数据操作 actions: { getSong ({commit, state}, id) { commit('openLoading') Axios.get(api.getSong(id)).url commit('setAudio') commit('setLocation', url) }) }, getLrc ({commit, state}, id) { commit('setLrc', '[txt](加载中。。。') Axios.get(api.getLrc(id)).