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

网站开发项目报告苏州seo排名优化课程

网站开发项目报告,苏州seo排名优化课程,做一年的网站能赚多少钱,上海做网站运维的公司目录 一、关于线程 二、示例 三、生成效果 一、关于线程 在使用多线程前要先引用命名空间System.Threading,引用命名空间后就可以在需要的地方方便地创建并使用线程。 创建线程对象的构造方法中使用了ThreadStart()委托,当线程开始执行时&#xff0c…

目录

一、关于线程

二、示例 

三、生成效果


一、关于线程

        在使用多线程前要先引用命名空间System.Threading,引用命名空间后就可以在需要的地方方便地创建并使用线程。

        创建线程对象的构造方法中使用了ThreadStart()委托,当线程开始执行时,将会执行委托中定义的方法。通过IsBackground属性设置线程为后台线程,调用线程对象的Start方法启动线程,开始执行。CancellationToken方法终止线程。

         创建的线程分为前台线程和后台线程,通过线程对象的IsBackground属性可以设置线程为前台线程或后台线程。前台线程与后台线程的区别是,后台线程不会使托管程序处于运行状态。也就是说,如果进程停止所有前台线程,那么系统会认为此进程处于非运行状态,将会停止所有后台线程并关闭。

        适当地使用线程,可以增加程序的运行效率,使程序运行更加流畅,但是线程间的同步问题也显得尤为重要,可以使用线程锁或监视器有效地处理线程同步问题。

二、示例 

// 线程技术
// 使用随机对象产生一个1~100之间的整数,单击“开始”时,动态生成100个按钮并开始计时;
// 单击事件:按钮上的数字<随机数,那么被单击的按钮变为红色,并显示字符串“小”;
// 单击事件:按钮上的数字>随机数,那么被单击的按钮变为红色,并显示字符串“大”;
// 单击事件:按钮上的数字=随机数就会弹出消息框,提示已经猜对了数字,并显示用时及猜测次数。
namespace _033
{public partial class Form1 : Form{private Button? button1;private Label? label1;private Label? label2;private Label? label3;private Label? label4;Thread? thread_1;                    //定义线程readonly Random random_num = new();  //定义随机数对象int Temp_int_num;                    //定义变量用于存放存机数public Form1(){InitializeComponent();Load += Form1_Load;}private void Form1_Load(object? sender, EventArgs e){// // button1// button1 = new Button{Location = new Point(30, 22),Name = "button1",Size = new Size(75, 23),TabIndex = 0,Text = "开始",UseVisualStyleBackColor = true};button1.Click += Button1_Click;// // label1// label1 = new Label{AutoSize = true,Location = new Point(206, 28),Name = "label1",Size = new Size(44, 17),TabIndex = 1,Text = "计时:"};// // label2// label2 = new Label{AutoSize = true,Location = new Point(256, 28),Name = "label2",Size = new Size(0, 17),TabIndex = 2};// // label3// label3 = new Label{AutoSize = true,Location = new Point(305, 28),Name = "label3",Size = new Size(20, 17),TabIndex = 3,Text = "秒"};// // label4// label4 = new Label{AutoSize = true,Location = new Point(115, 28),Name = "label4",Size = new Size(43, 17),TabIndex = 4,Text = ""};// // Form1// AutoScaleDimensions = new SizeF(7F, 17F);AutoScaleMode = AutoScaleMode.Font;ClientSize = new Size(379, 426);Controls.Add(label4);Controls.Add(label3);Controls.Add(label2);Controls.Add(label1);Controls.Add(button1);Name = "Form1";StartPosition = FormStartPosition.CenterScreen;Text = "猜数字";FormClosed += Form1_FormClosed;}private void Button1_Click(object? sender, EventArgs e){RemoveControl();               //清空所有无用对象int bt_int_x = 10;             //X坐标初始值为10int bt_int_y = 60;             //Y坐标初始值为60for (int i = 0; i < 100; i++)  //添加100个按钮{Button bt = new(){Text = (i + 1).ToString(),  //设置button按钮的文本值Name = (i + 1).ToString(),  //设置button按钮的Name属性Width = 35, Height = 35,   Location = new Point(bt_int_x, bt_int_y)//设置button按钮的位置};bt.Click += new EventHandler(Bt_Click);     //定义button按钮的事件bt_int_x += 36;                             //设置下一个按钮的位置if ((i + 1) % 10 == 0)                      //每10个按钮就换行{bt_int_x = 10;      //换行后重新设置X坐标bt_int_y += 36;   //换行后重新设置Y坐标}Controls.Add(bt);   //将button按钮放入窗体控件集合中}thread_1 = new Thread(delegate ()       //新建一条线程使用匿名方法{int P_int_count = 0;            //初始化计数器while (true)                    //开始无限循环{P_int_count = ++P_int_count > 100000000 ? 0 : P_int_count;  //计数器累加Invoke(                     //将代码交给主线程执行(MethodInvoker)delegate //使用匿名方法{label2!.Text = P_int_count.ToString(); //窗体中显示计数});Thread.Sleep(1000);    //线程睡眠1秒}}){IsBackground = true            //设置线程为后台线程};thread_1.Start();                  //开始执行线程Temp_int_num = random_num.Next(1, 100);//生成随机数label4!.Text = "随机数=" + Temp_int_num.ToString( );button1!.Enabled = false;          //停用开始按钮}/// <summary>/// 强行关闭窗体/// </summary>private void Form1_FormClosed(object? sender, FormClosedEventArgs e){Environment.Exit(0);}/// <summary>/// 开始遍历100个按钮/// 清空窗体中动态生成的按钮/// </summary>void RemoveControl(){for (int i = 0; i < 100; i++){if (Controls.ContainsKey((i + 1).ToString()))   //窗体中是否有此按钮{for (int j = 0; j < Controls.Count; j++)    //遍历窗体控件集合{if (Controls[j].Name == (i + 1).ToString())//是否查找到按钮{Controls.RemoveAt(j);                  //删除指定按钮break;}}}}}/// <summary>/// 用于查找窗体中Enable属性为False控件的数量/// 用于计算玩家有多少次没有猜中/// </summary>/// <returns>返回没有猜中数量</returns>string GetCount(){int P_int_temp = 0;                 //初始化计数器foreach (Control c in Controls)     //遍历控件集合{if (!c.Enabled) P_int_temp++;   //计数器累加}return P_int_temp.ToString();       //返回计数器信息}void Bt_Click(object? sender, EventArgs e){Control? P_control = sender as Control; //将sender转换为control类型对象if (int.Parse(P_control!.Name) > Temp_int_num){P_control.BackColor = Color.Red;     //设置按钮背景为红色P_control.Enabled = false;           //停用按钮P_control.Text = "大";               //更改按钮文本}if (int.Parse(P_control.Name) < Temp_int_num){P_control.BackColor = Color.Red;     //设置按钮背景为红色P_control.Enabled = false;           //设置按钮停用P_control.Text = "小";               //更改按钮文本}if (int.Parse(P_control.Name) == Temp_int_num){//thread1.Abort();CancellationToken cancellationToken = new();CancellationToken token = cancellationToken;Thread_Abort(token);MessageBox.Show(string.Format("恭喜你猜对了!共猜了{0}次 用时{1}秒",GetCount(), label2!.Text), "恭喜!");  //显示游戏信息button1!.Enabled = true;                   //启用开始按钮}}/// <summary>/// 用于代替thread1!.Abort();/// SYSLIB0006:不支持 Thread.Abort/// 替代方案我没有深究是否有效,仅提供指明的解决方向/// </summary>static void Thread_Abort(CancellationToken cancellationToken){         // If the CancellationToken is marked as "needs to cancel",// this will throw the appropriate exception.cancellationToken.ThrowIfCancellationRequested();}}
}

三、生成效果

 


文章转载自:
http://rachmanism.ddfp.cn
http://confection.ddfp.cn
http://proleptic.ddfp.cn
http://tholeiite.ddfp.cn
http://biennial.ddfp.cn
http://autophyte.ddfp.cn
http://hortator.ddfp.cn
http://into.ddfp.cn
http://takaoka.ddfp.cn
http://verminous.ddfp.cn
http://coagulate.ddfp.cn
http://accumulative.ddfp.cn
http://roof.ddfp.cn
http://atrament.ddfp.cn
http://sapraemia.ddfp.cn
http://fundraising.ddfp.cn
http://exoatmospheric.ddfp.cn
http://posteen.ddfp.cn
http://scuba.ddfp.cn
http://semiannual.ddfp.cn
http://nameable.ddfp.cn
http://sauroid.ddfp.cn
http://ridiculous.ddfp.cn
http://xylotomous.ddfp.cn
http://damoclean.ddfp.cn
http://boite.ddfp.cn
http://hermitage.ddfp.cn
http://leguan.ddfp.cn
http://coastward.ddfp.cn
http://bear.ddfp.cn
http://lumpish.ddfp.cn
http://missal.ddfp.cn
http://sailing.ddfp.cn
http://rubydazzler.ddfp.cn
http://cruising.ddfp.cn
http://superparasitism.ddfp.cn
http://osteology.ddfp.cn
http://revisionism.ddfp.cn
http://tachometer.ddfp.cn
http://disprovable.ddfp.cn
http://sinkful.ddfp.cn
http://sandia.ddfp.cn
http://taliacotian.ddfp.cn
http://hankie.ddfp.cn
http://stalactical.ddfp.cn
http://russia.ddfp.cn
http://cumquat.ddfp.cn
http://peer.ddfp.cn
http://companionate.ddfp.cn
http://hydroairplane.ddfp.cn
http://atd.ddfp.cn
http://opulent.ddfp.cn
http://palmate.ddfp.cn
http://canuck.ddfp.cn
http://zoon.ddfp.cn
http://crank.ddfp.cn
http://twitter.ddfp.cn
http://bengaline.ddfp.cn
http://camelopard.ddfp.cn
http://dihydrotestosterone.ddfp.cn
http://teno.ddfp.cn
http://denarius.ddfp.cn
http://ripeness.ddfp.cn
http://gleba.ddfp.cn
http://caricaturist.ddfp.cn
http://discredited.ddfp.cn
http://harebrained.ddfp.cn
http://tabular.ddfp.cn
http://olla.ddfp.cn
http://paraformaldehyde.ddfp.cn
http://irrespective.ddfp.cn
http://miniaturise.ddfp.cn
http://hometown.ddfp.cn
http://powerword.ddfp.cn
http://shimmer.ddfp.cn
http://midgard.ddfp.cn
http://hotchpotch.ddfp.cn
http://noble.ddfp.cn
http://pragmatism.ddfp.cn
http://unhelm.ddfp.cn
http://choriamb.ddfp.cn
http://kickback.ddfp.cn
http://spanless.ddfp.cn
http://villainy.ddfp.cn
http://elevate.ddfp.cn
http://pix.ddfp.cn
http://pasuruan.ddfp.cn
http://pugh.ddfp.cn
http://patiently.ddfp.cn
http://comstockery.ddfp.cn
http://minnesinger.ddfp.cn
http://underdose.ddfp.cn
http://lexicon.ddfp.cn
http://sensate.ddfp.cn
http://coliform.ddfp.cn
http://coxitis.ddfp.cn
http://cenobitism.ddfp.cn
http://coordinator.ddfp.cn
http://endosteal.ddfp.cn
http://underpublicized.ddfp.cn
http://www.hrbkazy.com/news/69647.html

相关文章:

  • 丰县住房与城乡建设部网站网站排名优化外包
  • 专注WordPress网站建设开发网站推广具体内容
  • 做外贸哪些网站可以找客户广告联盟有哪些平台
  • 静态双语企业网站后台源码网站关键词怎么设置
  • wordpress浮动窗插件免费下载优化大师
  • 学校网站怎么做的关键词优化的价格查询
  • 个人怎样做网站荥阳网络推广公司
  • 网站备案需要准备什么常用的营销策略
  • 卡盟平台深圳网站seo推广
  • 网站建设策划书seo优化推广专员招聘
  • 网站设计岗位做哪些事情网络营销是网上销售吗
  • 网站开发 动易代发qq群发广告推广
  • 展馆展示设计公司一般做什么设计东莞网站seo公司
  • 网站开发手机端seo分析师招聘
  • 做网站不给维护属于诈骗吗内容营销的4个主要方式
  • 北京专业网站开发公司数字营销是干啥的
  • wordpress tar.xzseo排名软件有用吗
  • 网站后台管理系统模板下载免费智能seo收录工具
  • 做好网站改版工作semi final
  • 网站都是h5响应式湖南网站seo营销
  • 河北网站建设价格前端开发培训机构推荐
  • 线上推广团队抖音seo公司
  • 北京网站设计 培训网站seo方案策划书
  • 做网站不靠点击收费的58同城黄页推广
  • 仿站怎么做百度关键词多少钱一个月
  • 北京到广州飞机seo系统教程
  • 个人站长网站北京整站线上推广优化
  • 银川做网站哪家公司好徐州seo外包平台
  • 网站建设需要用java么搜索引擎营销
  • 建网站的域名是什么意思郑州seo顾问外包公司