delegate

tomcat启动问题,卡在 preparing launch delegate 100% 的解决方法

為{幸葍}努か 提交于 2021-02-20 11:35:38
tomcat启动问题,卡在 preparing launch delegate 100% 的解决方法 参考文章: (1)tomcat启动问题,卡在 preparing launch delegate 100% 的解决方法 (2)https://www.cnblogs.com/feiye512/p/7059985.html 备忘一下。 来源: oschina 链接: https://my.oschina.net/u/4428122/blog/4957212

C# Lambda表达式

北城以北 提交于 2021-02-20 07:40:58
一、简介     Lambda表达式来源于数学家Alonzo Church等人在1920~1930期间发明的Lambad积分。Lambda积分是用于表示函数的一套系统,它使用希腊字母Lambda( λ )来表示无名函数。   C# 3.0引入了Lambda表达式,它是一种简化的匿名函数,可用于创建委托或表达式目录树。你也可以将 Lambda 表达式作为参数进行传递,或者将它作用于函数调用值调用后返回的一个函数来使用。 二、基础   它的语法形式是: 输入参数 => 表达式或语句块    即运算符的左边是输入参数(如果有),右边是表达式或语句块。 ( “ => ” 读作 “ goes to ” )      2.1 表达式Lambda    表达式位于 => 运算符右侧的 lambda 表达式称为“表达式 lambda”。 表达式 Lambda 会返回表达式的结果 ,并采用以下基本形式: (input parameters) => expression delegate int myDel( int x, int y); // 声明委托 class Program { static void Main( string [] args) { myDel del = (x,y) => x+ y; //返回x+y的结果        Console.WriteLine( " values

.net必问的面试题系列之基本概念和语法

萝らか妹 提交于 2021-02-18 13:45:17
上个月离职了,这几天整理了一些常见的面试题,整理成一个系列给大家分享一下,机会是给有准备的人,面试造火箭,工作拧螺丝,不慌,共勉。 1.net必问的面试题系列之基本概念和语法 2.net必问的面试题系列之面向对象 3.net必问的面试题系列之设计模式 4.net必问的面试题系列之集合、异常、泛型 5.net必问的面试题系列之简单算法 6.net必问的面试题系列之数据库 7.net必问的面试题系列之web前端 .net打杂工程师的面试感想和总结 ###问题目录 1 字符串中string str=null和string str=""和string str=string.Empty的区别 2 byte b = 'a'; byte c = 1; byte d = 'ab'; byte e = '啊'; byte g = 256; 这些变量有些错误是错再哪里? 3 string和StringBuilder的区别,两者性能的比较 4 什么是扩展方法? 5 byte a =255;a+=5;a的值是多少? 6 什么是装箱和拆箱? 7 值类型和引用类型的区别 8 new关键字的作用 9 int?和int有什么区别 10 C#中的委托是什么? 11 用最有效的方法算出2乘以8等于几? 12 const和readonly有什么区别? 13.现有一个整数number

Task.Run与Task.Factory.StartNew的区别

牧云@^-^@ 提交于 2021-02-18 10:42:05
Task 是可能有延迟的工作单元,目的是生成一个结果值,或产生想要的效果。任务和线程的区别是:任务代表需要执行的作业,而线程代表做这个作业的工作者。 在.Net 4中,Task.Factory.StartNew是启动一个新Task的首选方法。一般它使用的主要场景只是将一个工作任务丢给一个后台线程执行而已。为了高度可配置机制它提供了很多 重载方法 ,通过设置可选参数,可以传递任意状态,取消任务继续执行,甚至控制任务的调度行为。所有这些能力也带来了复杂性的提升,你必须知道何时应该使用何种重载方法,提供哪种调度方式等等。 例如: Task.Factory.StartNew(someAction, CancellationToken.None, TaskCreationOptions.DenyChildAttach, TaskScheduler.Default); 使用这些默认参数,Task.Run就能用于大多数情况——只是将任务简单的交给后台线程池去执行。当然你可以通过控制TaskCreationOptions参数来控制任务的行为,你也可以通过控制TaskScheduler来控制任务应该如何排队如何运行,你也可以使用重载方法中的接受对象状态那个参数,对于一些性能敏感的代码,它可以用于避免闭包以及相应的资源分配。 Task.Factory.StartNew这种写法不够简洁明快,于是,在

egret 发布ios记录

断了今生、忘了曾经 提交于 2021-02-15 13:25:31
根据官方文档 http://developer.egret.com/cn/github/egret-docs/Native/native/hybrid/hybrid/index.html 将现有的项目发布成Hybird。 发布成功之后,使用xcode打开xcworkspace工程。 然后点击运行按钮。成功调用启动了iphone模拟器,但是内容确实一片空白,即手机模拟器屏幕上显示的是一片空白。 到这里为止,我再次回到官方文档查看。 逐个排查工程模版。 1.默认工程是从本地启动游戏。 我没有做任何改动,那就是从本地启动游戏。 1.1 启动流程     1.1.1初始化EgretWebViewLib; [EgretWebViewLib initialize:@"/egretGame/preload/"]; // "/egretGame/preload/"是缓存目录,在应用的document目录下。    成功;      1.1.2检查游戏资源是否已经部署到本地服务器; [EgretWebViewLib checkLoaded:zipFilePath Host:host] // zipFilePath是游戏资源zip的绝对路径 // host是游戏映射到哪个url下,如host为"https://egret.com/game/",对应的游戏url为"https://egret.com

C# 键盘钩子

橙三吉。 提交于 2021-02-15 06:30:39
C# 键盘钩子 1、键盘钩子: 通过代码将键盘的事件屏蔽掉,达到锁屏的效果。(参考地址:https://zhidao.baidu.com/question/135132386108196965.html) 2、代码如下: public class Hook : IDisposable { public delegate int HookProc( int nCode, int wParam, IntPtr lParam); private static int hHook; public const int WH_KEYBOARD_LL = 13 ; private HookProc KeyBoardHookProcedure; [StructLayout(LayoutKind.Sequential)] public class KeyBoardHookStruct { public int vkCode; public int scanCode; public int flags; public int time; public int dwExtraInfo; } [DllImport( " user32.dll " )] public static extern int SetWindowsHookEx( int idHook, HookProc lpfn, IntPtr

C# 简述Action与function

风格不统一 提交于 2021-02-14 21:41:17
Action 与 Func是.NET类库中增加的内置委托,以便更加简洁方便的使用委托。 最初使用委托时,均需要先定义委托类型,然后定义一个符合委托类型签名的函数, 在调用前,需声明并创建委托对象,将指定函数与委托进行关联。 如例1: public delegate int Math(int param1,int param2);定义委托类型 Public int Add(int param1,int param2)//定义同签名函数 {   Return param1+param2; } Math math;//声明委托 math=new Math(Add);创建委托对象,与指定进行关联 math(3,4);//调用委托函数 如果需要三个、四个参数的委托类型,则需要再次定义委托类型。简单的委托调用,却需要根据签名不断改变多次定义委托类型,而微软推出了对此进行简化的内置委托类型: Action和Func,简化了这些不必要的操作。 内置委托类型,顾名思义Action和Func本身就是已经定义好的委托类型。两种委托类型的区别在于:Action委托签名不提供返回类型,而Func提供返回类型。 Action委托具有Action<T>、Action<T1,T2>、Action<T1,T2,T3>……Action<T1,……T16>多达16个的重载,其中传入参数均采用泛型中的类型参数T

Lambda查询

放肆的年华 提交于 2021-02-13 07:31:00
使用EF查询数据库,之前使用Linq表达式,现在改成另一个种方法查询:Lambda表达式 TestEntities db= new TestEntities(); var userinfo = db.UserInfo.Where<UserInfo>(u => u.ID == 1 ).FirstOrDefault(); 其中Where方法是扩展方法。 public static IQueryable<TSource> Where<TSource>( this IQueryable<TSource> source, Expression<Func<TSource, bool >> predicate); 扩展方法的第一个参数前必须加this关键字, 紧跟着是类型表示这个方法是给哪个类型扩展的。 后面的参数才表示调用这个方法的时候传的参数。 在第二个参数中, Expression表示Lambda表达式树。 Func<TSource, bool>是委托,需要一个 TSource类型的委托,结果返回bool类型。 // public delegate int AddSum(int a, int b); static void Main( string [] args) { Program p = new Program(); // AddSum addSum = new AddSum(p

C# 多线程 用委托实现异步_调用委托的BeginInvoke和EndInvoke方法

北城以北 提交于 2021-02-12 18:49:06
C# 多线程 用委托实现异步_调用委托的BeginInvoke和EndInvoke方法 1.C#中的每一个委托都内置了BeginInvoke和EndInvoke方法,如果委托的方法列表里只有一个方法,那么这个方法就可以异步执行(不在当前线程里执行,另开辟一个线程执行)。委托的BeginInvoke和EndInvoke方法就是为了上述目的而生的。 2.原始线程发起了一个异步线程,有如下三种执行方式: 方式一:等待一直到完成,即原始线程在发起了异步线程以及做了一些必要处理之后,原始线程就中断并等待异步线程结束再继续执行。 方式二:轮询,即原始线程定期检查发起的线程是否完成,如果没有则可以继续做一些其它事情。 方式三:回调,即原始线程一直执行,无需等待或检查发起的线程是否完成。在发起的线程执行结束,发起的线程就会调用用户定义好的回调方法,由这个回调方法在调用EndInvoke之前处理异步方法执行得到的结果。 3.一个控制台小程序,使用了上面三种方式,执行结果如下: 4.代码: 1 [csharp] view plain copy 2 3 using System; 4 using System.Collections.Generic; 5 using System.Linq; 6 using System.Runtime.Remoting.Messaging; 7 using

C#当中的BeginInvoke和EndInvoke

冷暖自知 提交于 2021-02-12 17:47:02
我们已经知道 C#当中 存在async/await 、BackGroudWorker类以及TPL(任务并行库)。当然C#还有一些旧的模式来支持异步编程。参考《C#图解教程》 1. BeginInovke和EndInvoke简单介绍 1 delegate long MyDel( int first, int second); 2 3 class Program 4 { 5 static long Sum( int x, int y) 6 { 7 Console.WriteLine( " ------Inside Sum@{0} " , DateTime.Now.ToString()); 8 Thread.Sleep( 2000 ); 9 return x + y; 10 } 11 12 static void Main( string [] args) 13 { 14 MyDel del = new MyDel(Sum); 15 16 Console.WriteLine( " Before BeginInvoke---@{0} " , DateTime.Now.ToString()); 17 IAsyncResult iar = del.BeginInvoke( 3 , 5 , null , null ); 18 Console.WriteLine( " After