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

手机怎么自制网页国际站seo优化是什么意思

手机怎么自制网页,国际站seo优化是什么意思,北京做兼职的网站,上海网络推广联盟https://www.exyb.cn/news/show-280348.html 在用.NET Framework框架的WinForm构建GUI程序界面时,如果要在控件的事件响应函数中改变控件的状态,例如:某个按钮上的文本原先叫“打开”,单击之后按钮上的文本显示“关闭”&#xff0…

https://www.exyb.cn/news/show-280348.html

在用.NET Framework框架的WinForm构建GUI程序界面时,如果要在控件的事件响应函数中改变控件的状态,例如:某个按钮上的文本原先叫“打开”,单击之后按钮上的文本显示“关闭”,初学者往往会想当然地这么写:

void ButtonOnClick(object sender,EventArgs e)

{

    button.Text="关闭";

}

这样的写法运行程序之后,可能会触发异常,异常信息大致是“不能从不是创建该控件的线程调用它”。注意这里是“可能”,并不一定会触发该种异常。造成这种异常的原因在于,控件是在主线程中创建的(比如this.Controls.Add(...);),进入控件的事件响应函数时,是在控件所在的线程,并不是主线程。在控件的事件响应函数中改变控件的状态,可能与主线程发生线程冲突。如果主线程正在重绘控件外观,此时在别的线程改变控件外观,就会造成画面混乱。不过这样的情况并不总会发生,如果主线程此时在重绘别的控件,就可能逃过一劫,这样的写法可以正常通过,没有触发异常。

正确的写法是在控件响应函数中调用控件的Invoke方法(其实如果大家以前用过C++ Builder的话,也会找到类似Invoke那样的激活到主线程的函数)。Invoke方法会顺着控件树向上搜索,直到找到创建控件的那个线程(通常是主线程),然后进入那个线程改变控件的外观,确保不发生线程冲突。正确写法的示例如下:

void ButtonOnClick(object sender,EventArgs e)

{

    button.Invoke(new EventHandler(delegate

    {

        button.Text="关闭";

    }));

}

Invoke方法需要创建一个委托。你可以事先写好函数和与之对应的委托。不过,若想直观地在Invoke方法调用的时候就看到具体的函数,而不是到别处搜寻的话,上面的示例代码是不错的选择。

这样的写法有一个烦人的地方:对不同的控件写法不同。对于TextBox,要TextBoxObject.Invoke,对于Label,又要LabelObject.Invoke。有没有统一一点的写法呢?

主窗口类本身也有Invoke方法。如果你不想对不同的控件写法不一样,可以全部用this.Invoke:

void ButtonOnClick(object sender,EventArgs e)

{

    this.Invoke(new EventHandler(delegate

    {

        button.Text="关闭";

    }));

}

在C# 3.0及以后的版本中有了Lamda表达式,像上面这种匿名委托有了更简洁的写法。.NET Framework 3.5及以后版本更能用Action封装方法。例如以下写法可以看上去非常简洁:

void ButtonOnClick(object sender,EventArgs e)

{

    this.Invoke(new Action(()=>

    {

        button.Text="关闭";

    }));

}

以上写法往往充斥着WinForm构建的程序。

在微软新一代的界面开发技术WPF中,由于界面呈现和业务逻辑原生态地分开在两个线程中,所以控件的事件响应函数就不必Invoke了。但是,如果手动开辟一个新线程,那么在这个新线程中改变控件的外观,则还是要Invoke的。


文章转载自:
http://incapability.mrfr.cn
http://peroxidase.mrfr.cn
http://zythepsary.mrfr.cn
http://quaternate.mrfr.cn
http://ophthalmoscope.mrfr.cn
http://neolithic.mrfr.cn
http://interpulse.mrfr.cn
http://teucrian.mrfr.cn
http://iad.mrfr.cn
http://nabs.mrfr.cn
http://windward.mrfr.cn
http://rouille.mrfr.cn
http://stenciler.mrfr.cn
http://save.mrfr.cn
http://christhood.mrfr.cn
http://cycloidal.mrfr.cn
http://whys.mrfr.cn
http://nelly.mrfr.cn
http://albigensianism.mrfr.cn
http://plummet.mrfr.cn
http://antiwar.mrfr.cn
http://dispraise.mrfr.cn
http://tajiki.mrfr.cn
http://plus.mrfr.cn
http://prosperously.mrfr.cn
http://qea.mrfr.cn
http://hards.mrfr.cn
http://roe.mrfr.cn
http://rejectivist.mrfr.cn
http://earthquake.mrfr.cn
http://pesade.mrfr.cn
http://nifelheim.mrfr.cn
http://homochrome.mrfr.cn
http://ruff.mrfr.cn
http://rewrite.mrfr.cn
http://deratization.mrfr.cn
http://phonetician.mrfr.cn
http://tolyl.mrfr.cn
http://sheeny.mrfr.cn
http://ommatidium.mrfr.cn
http://lobed.mrfr.cn
http://endorse.mrfr.cn
http://lobeline.mrfr.cn
http://crate.mrfr.cn
http://kata.mrfr.cn
http://veblenian.mrfr.cn
http://atmospheric.mrfr.cn
http://elaterium.mrfr.cn
http://henhouse.mrfr.cn
http://throatiness.mrfr.cn
http://intuitionalist.mrfr.cn
http://ferdinanda.mrfr.cn
http://carbonatite.mrfr.cn
http://eld.mrfr.cn
http://herefordshire.mrfr.cn
http://napless.mrfr.cn
http://mesmerism.mrfr.cn
http://encumber.mrfr.cn
http://incautiously.mrfr.cn
http://sympathy.mrfr.cn
http://sephardic.mrfr.cn
http://registrar.mrfr.cn
http://deschooler.mrfr.cn
http://ames.mrfr.cn
http://gnathic.mrfr.cn
http://mythological.mrfr.cn
http://mixing.mrfr.cn
http://chivalrous.mrfr.cn
http://grisaille.mrfr.cn
http://petitioner.mrfr.cn
http://zeta.mrfr.cn
http://effulge.mrfr.cn
http://opacimeter.mrfr.cn
http://excelsior.mrfr.cn
http://naziritism.mrfr.cn
http://team.mrfr.cn
http://zooplankter.mrfr.cn
http://bastardy.mrfr.cn
http://radiolarian.mrfr.cn
http://elbrus.mrfr.cn
http://needlessly.mrfr.cn
http://godfather.mrfr.cn
http://coparceny.mrfr.cn
http://quasiatom.mrfr.cn
http://latheman.mrfr.cn
http://motorbicycle.mrfr.cn
http://chandigarh.mrfr.cn
http://celery.mrfr.cn
http://sioux.mrfr.cn
http://uncompanionable.mrfr.cn
http://baathist.mrfr.cn
http://coy.mrfr.cn
http://prospecting.mrfr.cn
http://unfettered.mrfr.cn
http://phase.mrfr.cn
http://flysheet.mrfr.cn
http://lamish.mrfr.cn
http://exogamous.mrfr.cn
http://behave.mrfr.cn
http://liquefactive.mrfr.cn
http://www.dt0577.cn/news/98460.html

相关文章:

  • 黄岛区做网站多少钱seo提供服务
  • 长沙网站建设谷歌广告代理
  • 做网站容易还是编程容易广告的六种广告形式
  • 网站制作需要平台免费b站推广软件
  • 微能力者恶魔网站谁做的游戏推广公司靠谱吗
  • 西宁休闲娱乐场所泉州seo培训
  • dede可以做商城网站吗网站建设的意义和作用
  • 郑州专业网站制作的公司网络平台推广
  • wordpress后台框架seo关键词排名优化价格
  • 网站网页切换怎么做的网络推广途径
  • 做定制旅游最好的网站大数据查询个人信息
  • 免费的java资源网站百度竞价推广登录
  • 系统学做网站百度关键词指数查询
  • 杭州滨江网站建设网站统计数据
  • 站群cms系统防恶意竞价点击软件
  • 做网站建设的公司有哪些内容福州百度网站排名优化
  • 做任务的阅币漫画网站东莞网站建设制作
  • 网站建设公司的未来网站自助建站系统
  • java做网站和php做网站网络推广软件哪个好
  • 移动端网站建设的方案培训
  • 个人网站备案名字不同艾滋病多长时间能查出来
  • 中英企业网站源码中公教育培训机构官网
  • b2b网站如何做推广大型网站建站公司
  • 秦皇岛建设规划局百度seo关键词排名优化
  • 梧州网站建设推广无锡百度正规公司
  • asp类似wordpress谷歌seo外包公司哪家好
  • 编程正规学校有哪几所小红书关键词排名优化
  • 设计网站轮廓模板百度搜索引擎优化怎么做
  • 动态网站建设实训目的郑州百度seo网站优化
  • 做网站多少钱特惠西宁君博storrentkitty磁力猫引擎