登录
首页 » C#源码 » C# LockThread()锁定线程以实现线程同步

C# LockThread()锁定线程以实现线程同步

于 2022-02-20 发布 文件大小:9.09 kB
0 163
下载积分: 2 下载次数: 1

代码说明:

C# 使用LockThread()方法实现线程监视监控的例子,锁定线程以实现线程同步,实现方法比较简单,可参考以下的代码,完整的代码可在本网页下载:   static void Main(string[] args)   {    Program myProgram = new Program();//实例化类对象    myProgram.LockThread(); //调用锁定线程方法    Console.ReadLine();   }   void LockThread()   {    Monitor.Enter(this);//锁定当前线程    Console.WriteLine("锁定线程以实现线程同步");    Monitor.Exit(this); //释放当前线程   }

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • C# 在密钥容器中创建非对称密钥
    在密钥容器中创建非对称密钥、在密钥容器中删除非对称密钥、在密钥容器中获取非对称密钥,具体的实现代码,请参考如下代码:   private void button1_Click(object sender, EventArgs e)   {//在密钥容器中创建非对称密钥    CspParameters MyCSP = new CspParameters();    MyCSP.KeyContainerName = this.textBox2.Text;    RSACryptoServiceProvider MyRSA = new RSACryptoServiceProvider(MyCSP);    this.textBox1.Text=MyRSA.ToXmlString(true);   }   private void button2_Click(object sender, EventArgs e)   {//在密钥容器中删除非对称密钥    CspParameters MyCSP = new CspParameters();    MyCSP.KeyContainerName = this.textBox2.Text;    RSACryptoServiceProvider MyRSA = new RSACryptoServiceProvider(MyCSP);    MyRSA.PersistKeyInCsp = false;    MyRSA.Clear();    try    {    this.textBox1.Text = MyRSA.ToXmlString(true);    }    catch    {    this.textBox1.Text = "已经删除非对称密钥!";    }   }   private void button3_Click(object sender, EventArgs e)   {//在密钥容器中获取非对称密钥    CspParameters MyCSP = new CspParameters();    MyCSP.KeyContainerName = this.textB
    2022-02-06 13:18:17下载
    积分:1
  • C# dateTimePicker的用法演示
    本源码主要是演示C# dateTimePicker的用法,演示通过设置dateTimePicker1的Format属性为Time,使dateTimePicker只显示时间,而不显示日期,具体设置属性如下:   private void Form1_Load(object sender, EventArgs e)   {    //设置dateTimePicker1的Format属性为Time使其只显示时间    dateTimePicker1.Format = DateTimePickerFormat.Time;    textBox1.Text = dateTimePicker1.Text;//使用文本框获取控件显示的时间   }   本例完成的效果,可参见截图示。
    2023-04-05 12:35:03下载
    积分:1
  • C# 实现凹凸按钮(立体按钮效果)
    Visual C# 实现凹凸按钮(立体按钮效果),鼠标放在按钮上,按下鼠标左键,即可看到凹凸效果:   private void Window_Loaded(object sender, RoutedEventArgs e)   {//(上凸效果)    BevelBitmapEffect MyBevelEffect = new BevelBitmapEffect();    MyBevelEffect.BevelWidth = 20;    MyBevelEffect.EdgeProfile = EdgeProfile.CurvedIn;    MyBevelEffect.LightAngle = 320;    MyBevelEffect.Relief = 0.4;    MyBevelEffect.Smoothness = 0.4;    this.button1.BitmapEffect = MyBevelEffect;    bShift = true;   }   private void button1_Click(object sender, RoutedEventArgs e)   {//凹凸显示按钮(下凸效果)    if (bShift)    {    BevelBitmapEffect MyBevelEffect = new BevelBitmapEffect();    MyBevelEffect.BevelWidth = 20;    this.button1.BitmapEffect = MyBevelEffect;    bShift = false;    }    else    {    BevelBitmapEffect MyBevelEffect = new BevelBitmapEffect();    MyBevelEffect.BevelWidth = 20;    MyBevelEffect.EdgeProfile = EdgeProfile.CurvedIn;    MyBevelEffect.Ligh
    2022-04-20 03:11:38下载
    积分:1
  • C# 使用DrawPolygon方法绘制一个多边形
    C# 调用Graphics对象的DrawPolygon方法绘制一个多边形,我们用代码定义多边形的每条边:Point point6 = new Point(160, 20); //实例化Point类,注意多边形的每个边都需要定义不同数据。   Point[] myPoints ={ point1, point2, point3, point4, point5, point6 };//创建Point结构数组   //调用Graphics对象的DrawPolygon方法绘制一个多边形   ghs.DrawPolygon(myPen, myPoints);
    2022-02-03 12:31:32下载
    积分:1
  • 104规约IEC60870-5-104
    完整的能通过vs2010运行的IEC-104主站和辅站源代码,本人在公司实习亲自编写的。对初学者帮助很大而且对104协议的剖析很清楚。
    2023-05-22 09:00:20下载
    积分:1
  • C# 模拟Windows CMD Ping命令
    C# 模拟Windows CMD Ping命令,这个Ping和Windows中的控制台Ping命令几乎一样,如果用户没有输入任何参数则给出提示,初始化一个ICMP类型的Socket,用户提供了主机名和循环参数(开关,“/r”),调用 PingHost 方法并将主机名作为参数传递给它,如果用户还提供了其他的参数则忽略,取得报文内容,转化为字节数组,然后计算报文的长度。   在校验和算法方面,把ICMP报头二进制数据以2字节为单位累加起来,若ICMP报头为奇数个字节,会剩下最后一字节。把最后一个字节视为一个2字节数据的高字节,这个2字节数据的低字节为0,继续累加。。
    2023-05-08 16:20:03下载
    积分:1
  • C# GroupBy将字符串数组按元素长度分组
    C#演示 GroupBy字符串操作范例,C# GroupBy将字符串数组按元素长度分组:   string[] Words = new string[] { "what", "is", "your", "name", "?", "my", "name", "is", "lyf", "." };   var Groups = from word in Words   group word by word.Length into lengthGroups//按单词长度将单词分组   orderby lengthGroups.Key descending//按单词长度降序排列   select new   {    Length = lengthGroups.Key,//取单词长度    WordCollect = lengthGroups//取该长度的单词分组集合   };最后使用foreach循环遍历每组单词,将罗列出包括指定字符的单词是哪几个。
    2023-08-16 01:45:03下载
    积分:1
  • C# 仿微信大部分功能含登录扫描二维
    C# 版网页微信源代码,仿出了微信的大部分功能,加载登录微信需要扫描二维码,不过使用了较多的微信类库,微信主界面登录在WeChat_Desktop_App文件夹中。下载源码后请重新编译本源码,生成exe运行,界面如截图所示。   本C#微信项目,将微信的各个功能模块单独来开发,存放于各个文件夹中,比如登录模块、主界面模板、日志信息写入、文件上传下载日志和资源文件等,测试中发现可以登录微信,但是有些功能受测试条件限制,没能运行起来,大家下载源码后自己研究吧,有利于学习C#环境下的各个微信接口的使用。
    2023-04-27 07:20:05下载
    积分:1
  • C#生成连续和任意重复的字符串实例
    C#调用自定义方法生成字符串实例,生成的这些字符串有两种类型,一种是生成包括N个连续字符的字符串,另一个是生成指定重复字符的字符串,在平时的应用中,有很多卡号和序列号需要生成类似的号码,有兴趣的可参考。   static void Main(string[] args)   {    Program p = new Program();//创建Program对象    p.CreateSString();//调用自定义方法    p.CreateTString();//调用自定义方法    Console.Read();   }   private void CreateSString()   {    //生成包含6个连续字符的字符串    string str = new string(Enumerable.Range(0, 6).Select(i => (char)(i + 65)).ToArray());    Console.WriteLine("包含6个连续字符的字符串:" + str);   }   private void CreateTString()   {    //生成包含3个重复字符串的字符串    string str = string.Join(string.Empty, Enumerable.Repeat("MR", 3).ToArray());    Console.WriteLine("包含3个重复字符串的字符串:" + str);   }
    2022-07-11 13:58:31下载
    积分:1
  • 用C#实现启动欢迎画面
    用C#制作软件启动时的欢迎界面,开始画面,在软件被打开时最先显示的一个窗口效果,在本例中是直接调用一张图片来显示,但是具体的实现,比如图片显示的位置 、显示的时间长短等,用到的定时器,需要控制好,本实例代码就是向大家展示如何进行这些控制,部分代码为:   private void Form1_Load(object sender, EventArgs e)   {//启动窗体    Form2 MySplashForm = new Form2();    MySplashForm.ShowDialog();   }   private void Form2_Load(object sender, EventArgs e)   {//设置启动窗体    this.FormBorderStyle = FormBorderStyle.None;    this.BackgroundImage = Image.FromFile("test.jpg");    this.timer1.Start();    this.timer1.Interval = 10000;   }      private void timer1_Tick(object sender, EventArgs e)   {//关闭启动窗体    this.Close();   }   定时器控制:   private void Form2_FormClosed(object sender, FormClosedEventArgs e)   {//关闭定时器    this.timer1.Stop();   }
    2022-01-22 15:57:51下载
    积分:1
  • 696516资源总数
  • 106658会员总数
  • 16今日下载