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

高端论坛网站建设wordpress本地做好如何改站点地址

高端论坛网站建设,wordpress本地做好如何改站点地址,下载cmsv7,建设银行基金网站本项目利用多线程,通过点击按钮猜数字, 知识点 线程 基本概念 进程:一组资源,构成一个正在运行的程序,这些资源包括地址空间、文件句柄以及程序启动需要的其他东西的载体。 线程:体现一个程序的真实执行情况, 线…

本项目利用多线程,通过点击按钮猜数字,

知识点

线程

基本概念

进程:一组资源,构成一个正在运行的程序,这些资源包括地址空间、文件句柄以及程序启动需要的其他东西的载体。

线程:体现一个程序的真实执行情况,

线程和进程的关系:

  • 默认情况下,一个进程只包含一个线程,从程序开始执行一直到程序结束
  • 一个线程可以发起另外一个线程,一个进程都可能在不同状态有多个线程来执行程序的不同部分
  • 如果一个进程中有多个线程,它们会分享进程的资源
  • 线程是由系统负责调度的处理器(而不是进程)上的执行单元

声明周期

创建、启动、运行、阻塞、等待、睡眠、终止。

创建(Created):线程对象被创建,但尚未开始执行。它处于就绪状态,等待被调度执行。

启动(Started):调用线程的Start方法后,线程进入启动状态。此时,线程堆栈被分配,但线程尚未开始执行。

运行(Running):线程被调度并开始执行。它正在使用CPU资源执行代码。

阻塞(Blocked):线程因为等待某个资源(如锁、文件I/O等)而无法继续执行。阻塞状态可以是正常的,也可能是由于异常导致的。

等待(Waiting):线程正在等待某个事件或方法完成,如Thread.Sleep、Monitor.Wait等。

睡眠(Sleeping):线程因为调用了Thread.Sleep方法而暂时停止执行。它会在指定的时间后自动唤醒。

终止(Terminated):线程的执行完成,或者因为异常而被强行终止。一旦线程终止,它就不能再次被启动。

各个状态的转换为:

新建(New)→ 创建(Created)
创建(Created)→ 启动(Started)
启动(Started)→ 运行(Running)
运行(Running)→ 阻塞(Blocked)/ 等待(Waiting)/ 睡眠(Sleeping)
阻塞(Blocked)/ 等待(Waiting)/ 睡眠(Sleeping)→ 运行(Running)
运行(Running)→ 终止(Terminated)

Thread P_th = new Thread(new ThreadStart(方法名称));//创建线程。方法名称可以是委托
P_th.IsBackground = true;//设置线程为后台线程
P_th.Start();//开始执行线程

Control.ControlCollection

这里做个区分。control和Control.ControlCollection的区别。

Control

Control 类是 Windows Forms 中所有控件的基类。它提供了控件的基本功能,如大小、位置、颜色、字体等。常见的控件如 ButtonTextBoxLabel 等都继承自 Control 类。

主要属性和方法:

  • Text: 获取或设置与控件关联的文本。
  • Location: 获取或设置控件的位置。
  • Size: 获取或设置控件的大小。
  • Visible: 获取或设置一个值,该值指示是否显示该控件。
  • Enabled: 获取或设置一个值,该值指示控件是否可以对用户交互作出响应。
  • BackColor: 获取或设置控件的背景色。
  • ForeColor: 获取或设置控件的前景色。
  • Font: 获取或设置控件显示的文本的字体。
  • Parent: 获取或设置控件的父容器。
  • Controls: 获取包含在控件内的控件的集合。

Control.ControlCollection

ControlCollection 类表示控件的集合,通常用于管理容器控件(如 FormPanelGroupBox 等)中的子控件。每个容器控件都有一个 Controls 属性,该属性返回一个 ControlCollection 对象,用于管理其子控件。

  • Count: 获取集合中的控件数。

  • Item: 获取或设置集合中指定索引处的控件。

  • Add: 将指定的控件添加到集合中。

  • Remove: 从集合中移除指定的控件。当你已经有一个控件的实例,并且想从集合中移除它时使用。

  • Clear: 从集合中移除所有控件。

  • Contains: 确定集合中是否包含指定的控件。

  • IndexOf: 返回集合中指定控件的索引。

  • ContainsKey:确定 Control.ControlCollection是否包含具有指定键的项。这里的项通常是控件的 Name 属性)

  • RemoveAt:在指定的索引位置从控件集合移除控件,当你知道要移除的控件在集合中的索引位置时使用。

    //Remove和RemoveAt的区别
    // 创建两个按钮
    Button button1 = new Button { Name = "Button1", Text = "Click Me 1" };
    Button button2 = new Button { Name = "Button2", Text = "Click Me 2" };// 将按钮添加到控件集合
    Controls.Add(button1);
    Controls.Add(button2);// 使用 Remove 移除 button1
    Controls.Remove(button1);// 使用 RemoveAt 移除索引为 0 的控件(即 button2)
    Controls.RemoveAt(0);//ContainsKey和Contains的区别
    if (Controls.ContainsKey("button1"))
    {// 集合中包含名为 "button1" 的控件
    }Button button1 = new Button();
    Controls.Add(button1);if (Controls.Contains(button1))
    {// 集合中包含 button1 控件实例
    }
    

Invoke

Invoke其实用法只有两种情况:

Control的Invoke
Delegate的Invoke
也就是说,Invoke前面要么是一个控件,要么是一个委托对象。本项目用到的control.invoke。

control.invoke(参数[delegate])方法:在拥有此控件的基础窗口句柄的线程上执行指定的委托。(同步)

其本质是一个方法,通过对象来调用。

Control的Invoke一般用于解决跨线程访问的问题,比如你想操作一个按钮button,你就要用button.Invoke,你想操作一个文本label,你就要用label.Invoke.但是大家会发现很麻烦,如果我既然想操作button,又操作label,能不能写在一起呢?有没有更简单的方法呢?

其实主窗体使一个Form,Form自然也是继承了Control的,所以Form也有Invoke的方法,如果你想省点事,就可以直接调用Form.Invoke,这就是常见的this.Invoke.

为什么有的Invoke前面啥都没有?其实前面是this,只不过省略了.

MethodInvoker

一个委托,该委托可以执行托管代码中声明为void且不接受任何参数的任何方法。

在对控件的 invoke 方法进行调用时或需要一个简单委托又不想自己定义时可以使用该委托

  //跨线程访问Invoke(new MethodInvoker(delegate{textBox1.Text = "修改了";})); //开启新线程 td,  在新线程中使用MethodInvoker 委托执行 run()方法, 这个时候 run() 方法其实是在主线程中执行的, 这样就避免了 //跨线程访问控件private void btnOK_Click(object sender, EventArgs e){Thread td = new Thread(new ThreadStart(threadRun));td.Start();}/// <summary>/// 主线程要执行的方法/// </summary>private void run(){this.textBox1.Text = "修改了";}/// <summary>/// 子线程线程方法/// </summary>private void threadRun(){MethodInvoker In = new MethodInvoker(run);this.BeginInvoke(In);}

另外关于MethodInvoker和EventHandler的区别。

public delegate void MethodInvoker();

public delegate void EventHandler(object sender, EventArgs e);

MethodInvoker 是不带参数的委托。
EventHandler 是可带参数的委托。

其实跨线程访问控件,就是重新创建一个线程,然后调用主线程的方法。

三元条件运算符

condition ? consequent : alternative//condition 表达式的计算结果必须为 true 或 false。 若 condition 的计算结果为 true,将计算 consequent,其结果成为运算结果。 若 condition 的计算结果为 false,将计算 alternative,其结果成为运算结果is this condition true ? yes : no

实现逻辑

  • 自动生成60个按钮,每个按钮根据数值依次命名

  • 生成随机数,根据生成的随机数,依次点击按钮,如果按钮上的数字和随机产生的数字一致,则提示数字猜对,否则则继续猜

在这里插入图片描述


文章转载自:

http://ICEVRjz7.jncxr.cn
http://lRG2KLaO.jncxr.cn
http://FShDg1wE.jncxr.cn
http://TGllDEd6.jncxr.cn
http://gzWMLKut.jncxr.cn
http://6VyNMKtA.jncxr.cn
http://QMRyWkVJ.jncxr.cn
http://OXlU3avV.jncxr.cn
http://o9BzUwvV.jncxr.cn
http://qbc8nDMz.jncxr.cn
http://d1VALEpb.jncxr.cn
http://Uv4SkZml.jncxr.cn
http://Pg0MXAal.jncxr.cn
http://nWqc0HtD.jncxr.cn
http://HD8DkF8T.jncxr.cn
http://5YwrDqZH.jncxr.cn
http://odQp9LZi.jncxr.cn
http://2aERdpya.jncxr.cn
http://W94k8Lyu.jncxr.cn
http://x7uUWoD8.jncxr.cn
http://yOMlPZBr.jncxr.cn
http://Vm9KlNgr.jncxr.cn
http://xS2Tp4YY.jncxr.cn
http://7OxTmPZl.jncxr.cn
http://f5bCPiHa.jncxr.cn
http://SXM52eti.jncxr.cn
http://fugbWkSY.jncxr.cn
http://KhAGqlFB.jncxr.cn
http://rKDv63ws.jncxr.cn
http://LW9rFyX4.jncxr.cn
http://www.dtcms.com/wzjs/760348.html

相关文章:

  • 门户网站建设对策及建议iis做网站的流程
  • 学做电商的网站wordpress文章时间轴
  • 字体排版网站中国舆情在线网
  • 全国房地产网站鞍山网站制作一般多少钱
  • 手机模板网站下载蚌埠市建设工程质监站网站
  • 移动网站建设专业论文2345网址导航app下载2021
  • 哈尔滨网站建设流程怎么在网上开店
  • 做画册找什么网站上海建设网站是国家级吗
  • 投融网站建设方案饰品网站模版
  • 建设部工程业绩网站wordpress 会员注册插件
  • 鸿顺里网站建设公司网站开发超速云
  • 济南市网站推广公司郑州网站推广公司价格
  • 潍坊建网站的网络营销案例
  • 南京企业微信网站建设做问卷调查的网站有哪些
  • 网站开发公司 杭州wordpress内容管理
  • 一流小说网站模板聚合影视网站建设
  • 网站建设视频教程phpwordpress.org去除
  • 强化网站建设和管理手机端网站的建设
  • 建设的优质网站学做面包网站
  • 网站程序哪个好建网站公司公司名称大全
  • 通过门户网站做单点登录SAP五一自学网免费教程官网
  • 网站宽度一般是多少没有地址如何注册公司
  • 怎么做联盟网站wordpress怎么去掉主题的搜索框
  • 没有域名怎么搭建网站国建设文化艺术协会网站
  • 做一个企业网站多少钱小说网站开发多少钱
  • 网站与装修公司网站排名seo教程
  • 网站的用户注册怎么做南昌哪里可以做电商网站
  • 花都网站建设策划中国制造网官方网址
  • 奥联网络网站建设望野古诗王绩
  • 网络推广平台网站推广网站建设 厦门