0505.Net基础班第十六天(多线程和Socket网络编程)

01复习

  1 using System;
  2 using System.Collections.Generic;
  3 using System.ComponentModel;
  4 using System.Data;
  5 using System.Drawing;
  6 using System.Linq;
  7 using System.Text;
  8 using System.Threading.Tasks;
  9 using System.Windows.Forms;
 10 using System.IO;
 11 using System.Media;
 12 namespace _01复习
 13 {
 14     public partial class Form1 : Form
 15     {
 16         public Form1()
 17         {
 18             InitializeComponent();
 19         }
 20         //用来存储音乐文件的全路径
 21         List<string> listSongs = new List<string>();
 22         private void button1_Click(object sender, EventArgs e)
 23         {
 24             OpenFileDialog ofd = new OpenFileDialog();
 25             ofd.Title = "请选择音乐文件";
 26             ofd.InitialDirectory = @"F:\CloudMusic";
 27             ofd.Multiselect = true;
 28             ofd.Filter = "音乐文件|*.wav|所有文件|*.*";
 29             ofd.ShowDialog();
 30             //获得我们在文件夹中选择所有文件的全路径
 31             string[] path = ofd.FileNames;
 32             for (int i = 0; i < path.Length; i++)
 33             {
 34                 //将音乐文件的文件名加载到ListBox中
 35                 listBox1.Items.Add(Path.GetFileName(path[i]));
 36                 //将音乐文件的全路径存储到泛型集合中
 37                 listSongs.Add(path[i]);
 38             }
 39         }
 40
 41
 42         /// <summary>
 43         /// 实现双击播放
 44         /// </summary>
 45         /// <param name="sender"></param>
 46         /// <param name="e"></param>
 47         ///
 48         SoundPlayer sp = new SoundPlayer();
 49         private void listBox1_DoubleClick(object sender, EventArgs e)
 50         {
 51
 52             sp.SoundLocation=listSongs[listBox1.SelectedIndex];
 53             sp.Play();
 54         }
 55         /// <summary>
 56         /// 点击下一曲
 57         /// </summary>
 58         /// <param name="sender"></param>
 59         /// <param name="e"></param>
 60         private void button3_Click(object sender, EventArgs e)
 61         {
 62             //获得当前选中歌曲的索引
 63             int index = listBox1.SelectedIndex;
 64             index++;
 65             if (index == listBox1.Items.Count)
 66             {
 67                 index = 0;
 68             }
 69             //将改变后的索引重新的赋值给我当前选中项的索引
 70             listBox1.SelectedIndex = index;
 71             sp.SoundLocation = listSongs[index];
 72             sp.Play();
 73         }
 74
 75
 76         /// <summary>
 77         /// 点击上一曲
 78         /// </summary>
 79         /// <param name="sender"></param>
 80         /// <param name="e"></param>
 81         private void button2_Click(object sender, EventArgs e)
 82         {
 83             int index = listBox1.SelectedIndex;
 84             index--;
 85             if (index < 0)
 86             {
 87                 index = listBox1.Items.Count-1;
 88             }
 89             //将重新改变后的索引重新的赋值给当前选中项
 90             listBox1.SelectedIndex = index;
 91             sp.SoundLocation = listSongs[index];
 92             sp.Play();
 93         }
 94
 95         private void Form1_Load(object sender, EventArgs e)
 96         {
 97
 98         }
 99     }
100 }

  1 namespace _01复习
  2 {
  3     partial class Form1
  4     {
  5         /// <summary>
  6         /// 必需的设计器变量。
  7         /// </summary>
  8         private System.ComponentModel.IContainer components = null;
  9
 10         /// <summary>
 11         /// 清理所有正在使用的资源。
 12         /// </summary>
 13         /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
 14         protected override void Dispose(bool disposing)
 15         {
 16             if (disposing && (components != null))
 17             {
 18                 components.Dispose();
 19             }
 20             base.Dispose(disposing);
 21         }
 22
 23         #region Windows 窗体设计器生成的代码
 24
 25         /// <summary>
 26         /// 设计器支持所需的方法 - 不要
 27         /// 使用代码编辑器修改此方法的内容。
 28         /// </summary>
 29         private void InitializeComponent()
 30         {
 31             this.button1 = new System.Windows.Forms.Button();
 32             this.listBox1 = new System.Windows.Forms.ListBox();
 33             this.button2 = new System.Windows.Forms.Button();
 34             this.button3 = new System.Windows.Forms.Button();
 35             this.SuspendLayout();
 36             //
 37             // button1
 38             //
 39             this.button1.Location = new System.Drawing.Point(22, 29);
 40             this.button1.Name = "button1";
 41             this.button1.Size = new System.Drawing.Size(75, 23);
 42             this.button1.TabIndex = 0;
 43             this.button1.Text = "打开";
 44             this.button1.UseVisualStyleBackColor = true;
 45             this.button1.Click += new System.EventHandler(this.button1_Click);
 46             //
 47             // listBox1
 48             //
 49             this.listBox1.FormattingEnabled = true;
 50             this.listBox1.ItemHeight = 12;
 51             this.listBox1.Location = new System.Drawing.Point(22, 79);
 52             this.listBox1.Name = "listBox1";
 53             this.listBox1.Size = new System.Drawing.Size(216, 328);
 54             this.listBox1.TabIndex = 1;
 55             this.listBox1.DoubleClick += new System.EventHandler(this.listBox1_DoubleClick);
 56             //
 57             // button2
 58             //
 59             this.button2.Location = new System.Drawing.Point(276, 79);
 60             this.button2.Name = "button2";
 61             this.button2.Size = new System.Drawing.Size(75, 23);
 62             this.button2.TabIndex = 2;
 63             this.button2.Text = "上一曲";
 64             this.button2.UseVisualStyleBackColor = true;
 65             this.button2.Click += new System.EventHandler(this.button2_Click);
 66             //
 67             // button3
 68             //
 69             this.button3.Location = new System.Drawing.Point(276, 139);
 70             this.button3.Name = "button3";
 71             this.button3.Size = new System.Drawing.Size(75, 23);
 72             this.button3.TabIndex = 3;
 73             this.button3.Text = "下一曲";
 74             this.button3.UseVisualStyleBackColor = true;
 75             this.button3.Click += new System.EventHandler(this.button3_Click);
 76             //
 77             // Form1
 78             //
 79             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
 80             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
 81             this.ClientSize = new System.Drawing.Size(670, 417);
 82             this.Controls.Add(this.button3);
 83             this.Controls.Add(this.button2);
 84             this.Controls.Add(this.listBox1);
 85             this.Controls.Add(this.button1);
 86             this.Name = "Form1";
 87             this.Text = "Form1";
 88             this.Load += new System.EventHandler(this.Form1_Load);
 89             this.ResumeLayout(false);
 90
 91         }
 92
 93         #endregion
 94
 95         private System.Windows.Forms.Button button1;
 96         private System.Windows.Forms.ListBox listBox1;
 97         private System.Windows.Forms.Button button2;
 98         private System.Windows.Forms.Button button3;
 99     }
100 }

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Threading.Tasks;
 5 using System.Windows.Forms;
 6
 7 namespace _01复习
 8 {
 9     static class Program
10     {
11         /// <summary>
12         /// 应用程序的主入口点。
13         /// </summary>
14         [STAThread]
15         static void Main()
16         {
17             Application.EnableVisualStyles();
18             Application.SetCompatibleTextRenderingDefault(false);
19             Application.Run(new Form1());
20         }
21     }
22 }

02线程和进程的复习

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Diagnostics;
 4 using System.Linq;
 5 using System.Text;
 6 using System.Threading;
 7 using System.Threading.Tasks;
 8
 9 namespace _02线程和进程的复习
10 {
11     class Program
12     {
13         static void Main(string[] args)
14         {
15
16             //通过进程去打开应用程序
17           //  Process.getprocesses
18             //Process.Start("notepad");
19             //Process.Start("iexplore", "http://www.baidu.com");
20
21
22
23             //通过进程去打开指定的文件
24             //ProcessStartInfo psi = new ProcessStartInfo(@"C:\Users\SpringRain\Desktop\1、播放音乐下一曲.wmv");
25             //Process p = new Process();
26             //p.StartInfo = psi;
27             //p.Start();
28             //Console.ReadKey();
29
30
31             //进程和线程的关系? 一个进程包含多个线程
32
33             //前台  后台
34         }
35     }
36 }

03、线程执行带参数的方法

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6
 7 namespace _03_线程执行带参数的方法
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13
14         }
15
16
17     }
18 }

04、线程执行带参数的方法

 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using System.Drawing;
 6 using System.Linq;
 7 using System.Text;
 8 using System.Threading;
 9 using System.Threading.Tasks;
10 using System.Windows.Forms;
11
12 namespace _04_线程执行带参数的方法
13 {
14     public partial class Form1 : Form
15     {
16         public Form1()
17         {
18             InitializeComponent();
19         }
20
21         private void button1_Click(object sender, EventArgs e)
22         {
23             Thread th = new Thread(Test);
24             th.IsBackground = true;
25             th.Start("123");
26             //Test();
27         }
28
29
30         private void Test(object s)
31         {
32             string ss = (string)s;
33             for (int i = 0; i < 10000; i++)
34             {
35                 Console.WriteLine(i);
36             }
37         }
38     }
39 }

 1 namespace _04_线程执行带参数的方法
 2 {
 3     partial class Form1
 4     {
 5         /// <summary>
 6         /// 必需的设计器变量。
 7         /// </summary>
 8         private System.ComponentModel.IContainer components = null;
 9
10         /// <summary>
11         /// 清理所有正在使用的资源。
12         /// </summary>
13         /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
14         protected override void Dispose(bool disposing)
15         {
16             if (disposing && (components != null))
17             {
18                 components.Dispose();
19             }
20             base.Dispose(disposing);
21         }
22
23         #region Windows 窗体设计器生成的代码
24
25         /// <summary>
26         /// 设计器支持所需的方法 - 不要
27         /// 使用代码编辑器修改此方法的内容。
28         /// </summary>
29         private void InitializeComponent()
30         {
31             this.button1 = new System.Windows.Forms.Button();
32             this.SuspendLayout();
33             //
34             // button1
35             //
36             this.button1.Location = new System.Drawing.Point(226, 28);
37             this.button1.Name = "button1";
38             this.button1.Size = new System.Drawing.Size(75, 23);
39             this.button1.TabIndex = 0;
40             this.button1.Text = "button1";
41             this.button1.UseVisualStyleBackColor = true;
42             this.button1.Click += new System.EventHandler(this.button1_Click);
43             //
44             // Form1
45             //
46             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
47             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
48             this.ClientSize = new System.Drawing.Size(599, 417);
49             this.Controls.Add(this.button1);
50             this.Name = "Form1";
51             this.Text = "Form1";
52             this.ResumeLayout(false);
53
54         }
55
56         #endregion
57
58         private System.Windows.Forms.Button button1;
59     }
60 }

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Threading.Tasks;
 5 using System.Windows.Forms;
 6
 7 namespace _04_线程执行带参数的方法
 8 {
 9     static class Program
10     {
11         /// <summary>
12         /// 应用程序的主入口点。
13         /// </summary>
14         [STAThread]
15         static void Main()
16         {
17             Application.EnableVisualStyles();
18             Application.SetCompatibleTextRenderingDefault(false);
19             Application.Run(new Form1());
20         }
21     }
22 }

05、摇奖机应用程序

 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using System.Drawing;
 6 using System.Linq;
 7 using System.Text;
 8 using System.Threading;
 9 using System.Threading.Tasks;
10 using System.Windows.Forms;
11
12 namespace _05_摇奖机应用程序
13 {
14     public partial class Form1 : Form
15     {
16         public Form1()
17         {
18             InitializeComponent();
19         }
20         bool b = false;
21         private void button1_Click(object sender, EventArgs e)
22         {
23             if (b == false)
24             {
25                 b = true;
26                 button1.Text = "停止";
27                 Thread th = new Thread(PlayGame);
28                 th.IsBackground = true;
29                 th.Name = "新线程";
30                // th.
31                 th.Start();
32             }
33             else//b==true
34             {
35                 b = false;
36                 button1.Text = "开始";
37             }
38             //PlayGame();
39         }
40         private void PlayGame()
41         {
42             Random r = new Random();
43             while (b)
44             {
45                 label1.Text = r.Next(0, 10).ToString();
46                 label2.Text = r.Next(0, 10).ToString();
47                 label3.Text = r.Next(0, 10).ToString();
48             }
49         }
50
51         private void Form1_Load(object sender, EventArgs e)
52         {
53             Control.CheckForIllegalCrossThreadCalls = false;
54         }
55     }
56 }

 1 namespace _05_摇奖机应用程序
 2 {
 3     partial class Form1
 4     {
 5         /// <summary>
 6         /// 必需的设计器变量。
 7         /// </summary>
 8         private System.ComponentModel.IContainer components = null;
 9
10         /// <summary>
11         /// 清理所有正在使用的资源。
12         /// </summary>
13         /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
14         protected override void Dispose(bool disposing)
15         {
16             if (disposing && (components != null))
17             {
18                 components.Dispose();
19             }
20             base.Dispose(disposing);
21         }
22
23         #region Windows 窗体设计器生成的代码
24
25         /// <summary>
26         /// 设计器支持所需的方法 - 不要
27         /// 使用代码编辑器修改此方法的内容。
28         /// </summary>
29         private void InitializeComponent()
30         {
31             this.label1 = new System.Windows.Forms.Label();
32             this.label2 = new System.Windows.Forms.Label();
33             this.label3 = new System.Windows.Forms.Label();
34             this.button1 = new System.Windows.Forms.Button();
35             this.SuspendLayout();
36             //
37             // label1
38             //
39             this.label1.AutoSize = true;
40             this.label1.Location = new System.Drawing.Point(111, 137);
41             this.label1.Name = "label1";
42             this.label1.Size = new System.Drawing.Size(41, 12);
43             this.label1.TabIndex = 0;
44             this.label1.Text = "label1";
45             //
46             // label2
47             //
48             this.label2.AutoSize = true;
49             this.label2.Location = new System.Drawing.Point(246, 137);
50             this.label2.Name = "label2";
51             this.label2.Size = new System.Drawing.Size(41, 12);
52             this.label2.TabIndex = 1;
53             this.label2.Text = "label2";
54             //
55             // label3
56             //
57             this.label3.AutoSize = true;
58             this.label3.Location = new System.Drawing.Point(396, 136);
59             this.label3.Name = "label3";
60             this.label3.Size = new System.Drawing.Size(41, 12);
61             this.label3.TabIndex = 2;
62             this.label3.Text = "label3";
63             //
64             // button1
65             //
66             this.button1.Location = new System.Drawing.Point(398, 297);
67             this.button1.Name = "button1";
68             this.button1.Size = new System.Drawing.Size(75, 23);
69             this.button1.TabIndex = 3;
70             this.button1.Text = "开始";
71             this.button1.UseVisualStyleBackColor = true;
72             this.button1.Click += new System.EventHandler(this.button1_Click);
73             //
74             // Form1
75             //
76             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
77             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
78             this.ClientSize = new System.Drawing.Size(626, 456);
79             this.Controls.Add(this.button1);
80             this.Controls.Add(this.label3);
81             this.Controls.Add(this.label2);
82             this.Controls.Add(this.label1);
83             this.Name = "Form1";
84             this.Text = "Form1";
85             this.Load += new System.EventHandler(this.Form1_Load);
86             this.ResumeLayout(false);
87             this.PerformLayout();
88
89         }
90
91         #endregion
92
93         private System.Windows.Forms.Label label1;
94         private System.Windows.Forms.Label label2;
95         private System.Windows.Forms.Label label3;
96         private System.Windows.Forms.Button button1;
97     }
98 }

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Threading.Tasks;
 5 using System.Windows.Forms;
 6
 7 namespace _05_摇奖机应用程序
 8 {
 9     static class Program
10     {
11         /// <summary>
12         /// 应用程序的主入口点。
13         /// </summary>
14         [STAThread]
15         static void Main()
16         {
17             Application.EnableVisualStyles();
18             Application.SetCompatibleTextRenderingDefault(false);
19             Application.Run(new Form1());
20         }
21     }
22 }

时间: 2024-11-10 08:11:31

0505.Net基础班第十六天(多线程和Socket网络编程)的相关文章

0505.Net基础班第十天(面向对象继承)

1.命名空间 可以认为类是属于命名空间的. 如果在当前项目中没有这个类的命名空间,需要我们手动的导入这个类所在的 命名空间. 1).用鼠标去点 2).alt+shift+F10 3).记住命名空间,手动的去引用 2.在一个项目中引用另一个项目的类 1).添加引用 2).引用命名空间 3.值类型和引用类型 区别: 1.值类型和引用类型在内存上存储的地方不一样. 2.在传递值类型和传递引用类型的时候,传递的方式不一样. 值类型我们称之为值传递,引用类型我们称之为引用传递. 我们学的值类型和引用类型:

0505.Net基础班第十四天(winform基础)

1.winform应用程序是一种智能客户端技术,我们可以使用winform应用程序 帮助我们获得信息或者传输信息等. 2.属性 Name:在后台要获得前台的控件对象,需要使用Name属性. visible:指示一个控件是否可见. Enabled:指示一个控件是否可用. 3.事件:发生一件事情. 注册事件:双击控件注册的都是控件默认被选中的那个事件. 触发事件: 4. 在Main函数当中创建的窗体对象,我们称之为这个窗体应用程序的主窗体. 也就意味着,当你将主窗体关闭后,整个应用程序都关闭了. 5

0505.Net基础班第十五天(winform基础)

1.Directory 操作文件夹 CreateDirectory 创建文件夹 Delete  删除文件夹 Move  剪切文件夹 Exist  判断是否存在 GetFiles 获得指定的目录下所有文件的全路径 GetDirectory 获得指定目录下所有文件夹的全路径 2.WebBrowser浏览器控件 url 3.ComboBox下拉框控件 DropDownStyle:控制下拉框的外观样式 名字:cbo+.... 案例:日期选择器 4.点击更换图片 1).在程序加载的时候,将指定图片文件夹中

0505.Net基础班第二十一天(基础加强总复习)

1.取消播放器的自动播放功能 2.播放或者暂停按钮 3.下一曲.上一曲 4.多选删除 5.静音和放音 6.选择列表中的音乐文件,单击播放按钮直接播放 7.自动进行下一曲 15秒  44秒 当我和世界不一样 44.--47 那就让我不一样 lblInfomation.Text = musicPlayer.currentMedia.duration.ToString() + "\r\n" + musicPlayer.currentMedia.durationString + "\

socket网络编程的一些基础知识

源地址:http://blog.csdn.net/roger_77/article/details/1453049 目录: 1) 什么是套接字? 2) Internet 套接字的两种类型 3) 网络理论 4) 结构体 5) 本机转换 6) IP 地址和如何处理它们 7) socket()函数 8) bind()函数 9) connect()函数 10) listen()函数 11) accept()函数 12) send()和recv()函数 13) sendto()和recvfrom()函数 

嵌入式 Linux网络编程(一)——Socket网络编程基础

嵌入式 Linux网络编程一--Socket网络编程基础 一.Socket简介 1.网络中进程间通信 本机进程使用进程号区别不同的进程进程间通信方式有管道.信号.消息队列.共享内存.信号量等.网络中进程间的通信首先需要识别进程所在主机在网络中的唯一标识即网络层的IP地址主机上的进程可以通过传输层的协议与端口号识别. 2.Socket原理 Socket是应用层与TCP/IP协议族通信的中间软件抽象层是一种编程接口.Socket屏蔽了不同网络协议的差异支持面向连接(Transmission Cont

Linux程序设计学习笔记----Socket网络编程基础之TCP/IP协议簇

转载请注明出处: ,谢谢! 内容提要 本节主要学习网络通信基础,主要涉及的内容是: TCP/IP协议簇基础:两个模型 IPv4协议基础:IP地址分类与表示,子网掩码等 IP地址转换:点分十进制\二进制 TCP/IP协议簇基础 OSI模型 我们知道计算机网络之中,有各种各样的设备,那么如何实现这些设备的通信呢? 显然是通过标准的通讯协议,但是,整个网络连接的过程相当复杂,包括硬件.软件数据封包与应用程序的互相链接等等,如果想要写一支将联网全部功能都串连在一块的程序,那么当某个小环节出现问题时,整只

Java基础篇Socket网络编程中的应用实例

说到java网络通讯章节的内容,刚入门的学员可能会感到比较头疼,应为Socket通信中一定会伴随有IO流的操作,当然对IO流比较熟练的哥们会觉得这是比较好玩的一章,因为一切都在他们的掌握之中,这样操作起来就显得非常得心应手,但是对于IO本来就不是多熟悉的哥们来说就有一定的困难了,在搞清楚IO流操作机制的同时还必须会应用到Socket通信中去,否则会对得到的结果感到非常郁闷和懊恼,下面就和大家一起分享一下自己遇到一点小麻烦后的感触以及给出的解决办法. 要求:客户端通过Socket通信技术上传本地一

windows socket网络编程基础知识

下面介绍网络7层协议在WINDOWS的实现: 7层协议 WIN系统 ________________________________________ 7 应用层 7 应用程序 ________________________________________________ 6 表示层 6 WINSOCK API(DLL) ___________________________________________ 5 会话层 5 SPI(DLL) ___________________________