当前位置: 首页 > news >正文

怎样建立网站wordpress菜单栏换色

怎样建立网站,wordpress菜单栏换色,wordpress如何修改html,网站如何做线上和线下推广一. 再谈委托 1. 委托是一个关键字为delegate的自定义类型#xff0c;通过委托可以把方法以参数的形式传递给另外一个方法#xff0c;实现插件式的开发模式#xff1b; 同时调用委托的时候#xff0c;委托所包含的所有方法都会被实现。 2. 委托的发展历史#xff1a;new…一. 再谈委托 1. 委托是一个关键字为delegate的自定义类型通过委托可以把方法以参数的形式传递给另外一个方法实现插件式的开发模式 同时调用委托的时候委托所包含的所有方法都会被实现。 2. 委托的发展历史new实例化传递方法→直接等于方法名→delegate匿名方法→省略delegate→省略括号中的参数→当只有一个参数省略小括号 →当方法体只有一行省略大括号 (详见http://www.cnblogs.com/yaopengfei/p/6959141.html) 3常用的Action委托和Func委托 A. Action委托无返回值至少有一个参数的委托 B. Func委托有返回值可以无参数的委托(当然也可以有参数) C. Action委托无参数无返回值的委托  二. 委托的调用 委托的调用分为两种 A. 同步调用Invoke方法方法参数为函数的参数。 B. 异步调用BeginInvoke方法。 其中无论是哪类调用都有两类写法 ①利用Action(或Func)内置委托调用的时候赋值。 ②利用Action委托直接赋值然后调用。 1 /// summary2 /// 执行动作:耗时而已3 /// /summary4 private void TestThread2(string threadName1, string threadName2)5 {6 Console.WriteLine(线程开始线程名为{2}和{3}当前线程的id为:{0}当前时间为{1},, System.Threading.Thread.CurrentThread.ManagedThreadId, DateTime.Now.ToString(yyyy-MM-dd HH:mm:ss:fff), threadName1, threadName2);7 long sum 0;8 for (int i 1; i 999999999; i)9 { 10 sum i; 11 } 12 Console.WriteLine(线程结束线程名为{2}和{3}当前线程的id为::{0}当前时间为{1}, System.Threading.Thread.CurrentThread.ManagedThreadId, DateTime.Now.ToString(yyyy-MM-dd HH:mm:ss:fff), threadName1, threadName2); 13 } 三. 深入剖析BeginInvoke方法 首先需要明确该方法参数个数不定, 最后两个参数含义固定如果不使用的话需要赋值null该方法最少两个参数即方法无参数这种情况下BeginInvoke中只有两个参数。此外赋值的方法有几个参数BeginInvoke中从左开始新增几个参数。 ①. 倒数第二个参数是有一个参数值无返回值的委托它代表的含义为该线程执行完毕后的回调。 ②. 倒数第一个参数向倒数第二个参数(即回调)中传值需要用AsyncState来接受。 ③. 其它参数即为赋值方法的参数。 注BeginInvoke的返回值等价于异步回调中的t。 1 private void button13_Click(object sender, EventArgs e)2 {3 Stopwatch watch new Stopwatch();4 watch.Start();5 Console.WriteLine(----------------- button1_Click 开始 主线程id为{0} --------------------------, Thread.CurrentThread.ManagedThreadId);6 7 Actionstring myFunc this.TestThread;8 IAsyncResult asyncResult null;9 //参数说明前面几个参数都是方法的参数值倒数第二个为异步调用的回调函数倒数第一个为传给回调函数的参数 10 for (int i 0; i 1; i) 11 { 12 string name string.Format(button1_Click{0}, i); 13 asyncResult myFunc.BeginInvoke(name, t 14 { 15 Console.WriteLine(我是线程{0}的回调, Thread.CurrentThread.ManagedThreadId); 16 //用 t.AsyncState 来获取回调传进来的参数 17 Console.WriteLine(传进来的参数为{0}, t.AsyncState); 18 19 //测试一下异步返回值的结果 20 Console.WriteLine(异步返回值的结果{0}, t.Equals(asyncResult)); 21 }, maru); 22 } 23 24 watch.Stop(); 25 Console.WriteLine(----------------- button1_Click 结束 主线程id为{0} 总耗时{1}--------------------------, Thread.CurrentThread.ManagedThreadId, watch.ElapsedMilliseconds); 26 27 } 结果 四. 线程等待的三种方式 1. asyncResult.IsCompleted属性该方式会存在时间上的误差。 2. WaitOne方法可以控制一直等待or超时不再等待。 3. EndInvoke方法官方推荐的线程等待的方式。 以上三种方式的局限性批量线程等待的时候不灵活需要for循环了。 1 private void button14_Click(object sender, EventArgs e)2 {3 Stopwatch watch new Stopwatch();4 watch.Start();5 Console.WriteLine(----------------- button1_Click 开始 主线程id为{0} --------------------------, Thread.CurrentThread.ManagedThreadId);6 7 IAsyncResult asyncResult null;8 Actionstring myFunc this.TestThread;9 string name string.Format(button1_Click{0}, 111); 10 asyncResult myFunc.BeginInvoke(name, t 11 { 12 Console.WriteLine(我是线程{0}的回调, Thread.CurrentThread.ManagedThreadId); 13 //用 t.AsyncState 来获取回调传进来的参数 14 Console.WriteLine(传进来的参数为{0}, t.AsyncState); 15 }, maru); 16 17 //等待的方式1会有时间上的误差 18 //while (!asyncResult.IsCompleted) 19 //{ 20 // Console.WriteLine(正在等待中); 21 //} 22 23 // 等待的方式二: 24 //asyncResult.AsyncWaitHandle.WaitOne();//一直等待 25 //asyncResult.AsyncWaitHandle.WaitOne(-1);//一直等待 26 //asyncResult.AsyncWaitHandle.WaitOne(1000);//等待1000毫秒超时就不等待了 27 28 //等待的方式三 29 myFunc.EndInvoke(asyncResult); 30 31 watch.Stop(); 32 Console.WriteLine(----------------- button1_Click 结束 主线程id为{0} 总耗时{1}--------------------------, Thread.CurrentThread.ManagedThreadId, watch.ElapsedMilliseconds); 33 34 } 下面是多个线程等待的情况 1 private void button15_Click(object sender, EventArgs e)2 {3 Stopwatch watch new Stopwatch();4 watch.Start();5 Console.WriteLine(----------------- button1_Click 开始 主线程id为{0} --------------------------, Thread.CurrentThread.ManagedThreadId);6 7 ListIAsyncResult list new ListIAsyncResult();8 9 for (int i 0; i 5; i) 10 { 11 string name string.Format(button1_Click{0}, i); 12 Action myFunc () 13 { 14 TestThread2(name, name); 15 }; 16 var asyncResult myFunc.BeginInvoke(null, null); 17 list.Add(asyncResult); 18 } 19 20 //下面是线程等待 21 foreach (var item in list) 22 { 23 item.AsyncWaitHandle.WaitOne(-1); 24 } 25 26 watch.Stop(); 27 Console.WriteLine(----------------- button1_Click 结束 主线程id为{0} 总耗时{1}--------------------------, Thread.CurrentThread.ManagedThreadId, watch.ElapsedMilliseconds); 28 } 结果
http://www.pierceye.com/news/104223/

相关文章:

  • 网站制作是那个带有客户案例的网站
  • 中国纪检监察报数字报湛江关键词优化平台
  • 网站品牌词如何优化东莞公司网站建设营销型网站建设
  • 鞍山网站建设营销想把自己做的网站放到网上
  • 松原公司做网站青岛工程建设管理信息网官方网站
  • 一个空间2个网站网站 手机 app
  • 河北网站建设方案详细磁器口网站建设
  • 怎么做网站树洞wordpress edd 会员
  • 购物网站中加减数目的怎么做仿站违法吗
  • 代理ip访问网站局门户网站的建设
  • 建网站业务如何开展阳江房产信息网官网
  • 企业网站建设套餐费用网站开发完后期维护重要吗
  • 3营销型网站建设湖北短视频seo推荐
  • 鸿运通网站建设未成年怎么在网上卖东西
  • 郑州网站推广排名公司商会小程序开发一个多少钱啊
  • wordpress单页网站在本页跳转心理网站的建设与维护
  • 哪里可以做网站系统企业管理官网登录入口
  • iis7 网站404错误信息官网下载软件
  • 广州建设网站平台广东seo网站推广代运营
  • 网站 优化 关键字qq官网登录
  • 建设银行园区公积金管理中心网站地方门户网站推广
  • 桂林市网站设计wordpress远程数据库
  • 网站建设多钱怎么做网上卖菜网站
  • 响应式电商网站网站设计常见问题
  • 爱常德网凡科网站可以做seo优化
  • 建设银行手机银行官方网站小程序app公众号的区别
  • 彩票网站维护需要几天企业展示网站建设需要做什么
  • cms网站后台模版惠州网站设计哪家好
  • 海南智能网站建设设计湘潭学校网站建设 x磐石网络
  • 网站建设的入门书籍表格我做视频网站