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

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

于 2022-02-20 发布 文件大小:9.09 kB
0 91
下载积分: 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# 设置制表位控制文本项的输出位置
    C# 设置制表位控制文本项的输出位置,将文字输出成表格的样式:   设置制表位控制文本项的输出位置    string MyText = " 姓名 高等数学 离散数学 数据结构 ";    MyText = MyText + "李开斌 95 81 92 ";    MyText = MyText + "汤小敏 78 84 75 ";    MyText = MyText + "汤柱兰 84 76 82 ";    MyText = MyText + "蒋兰坤 85 92 66 ";    MyText = MyText + "黄 丽 83 91 75 ";    MyText = MyText + "张中姣 75 88 82 ";    FontFamily MyFontFamily = new FontFamily("宋体");    Font MyFont = new Font(MyFontFamily, 10, FontStyle.Regular, GraphicsUnit.Point);    Rectangle MyRect = new Rectangle(25, 70, 280, 110);    SolidBrush MyBrush = new SolidBrush(Color.FromArgb(255, 0, 128, 255));    StringFormat MyFormat = new StringFormat();    float[] MyTabArray = { 60, 80, 80 };    MyFormat.SetTabStops(0, MyTabArray);    e.Graphics.DrawString(MyText, MyFont, MyBrush, MyRect, MyFormat);
    2022-02-28 17:10:41下载
    积分:1
  • visual C# KTV点歌管理系统 附文档
    一套由 C# SQLSERVER开发的KTV点歌管理系统,源码完整,并附有文档。系统主要功能:   人机交互界面,歌星点歌模块、数字点歌模块、拼音点歌模块、歌名点歌模块,并最大限度地实现了易维护性和易操作性。   点歌系统后台维护登录名称:Tsoft,密码为:111。   注意:在使用拼音点歌时,只需要输入歌曲名字中的每个字的头一个字母即可,例如:“小猪”输入“XZ”。
    2022-11-11 12:15:04下载
    积分:1
  • C# 复制和删除数据表指定行数据
    C# 复制和删除数据表指定行数据,主要是完成了两项功能,删除目标数据表的选择行的整行数据,将源数据表的选择行数据复制到目标数据表,这两个功能的实现思路和代码演示如下:   private void Form1_Load(object sender, EventArgs e)   {    MySourceTable = new DataTable();    var MyConnectString=@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:Northwind.mdb";    var MySQL = "Select * From 客户";    var MyAdapter=new OleDbDataAdapter(MySQL,MyConnectString);    MyAdapter.Fill(MySourceTable);    this.DataGridView1.DataSource = MySourceTable;    MyTargetTable = MySourceTable.Clone();    this.DataGridView2.DataSource = MyTargetTable;   }   private void Button1_Click(object sender, EventArgs e)   {//将源数据表的选择行数据复制到目标数据表    var MyID= "客户ID=;    MyID = MyID + this.DataGridView1.CurrentRow.Cells[0].Value.ToString() +";    MyTargetTable.ImportRow(this.MySourceTable.Select(MyID)[0]);   }   private void Button2_Click(object sender, EventArgs e)   {//删除目标数据表的选择行的整行数据    var MyID = "客户ID=;    MyID = MyID +this.DataGridView2.CurrentRow.Cells[0].Value.ToString
    2022-04-17 22:21:45下载
    积分:1
  • C# 异步加载图像的方法附示例
    C# 异步加载图像的方法附示例源码,异步加载技术对提升软件内容加载性能很有帮助,不但可以异步加载图片,还可以用于异步加载数据库内容,只是方法不同,本例是异步加载图片,这个也是使用比较多的一种情况,希望对C#初学者有所帮助。   运行本示例exe后,选择一张图片,则会异步加载这张图像,并显示当前图像文件加载进度,如效果图所示。
    2022-06-06 15:30:23下载
    积分:1
  • C#在线升级程序样例
    C#在线升级程序源码样例,比较简单的写法,可以借鉴一下,很实用
    2022-09-03 21:15:03下载
    积分:1
  • C#使用微信模拟发送post消息请求
    C#模拟发送post请求,使用微信模拟消息,Post请求模拟器。   WebClient wc = new WebClient();   wc.Headers.Add("Content-Type", "application/x-www-form-urlencoded");   byte[] postdata = Encoding.UTF8.GetBytes(poststr);   byte[] responseData = wc.UploadData(textBox3.Text, "POST", postdata);//得到返回字符流   textBox2.Text = Encoding.UTF8.GetString(responseData);
    2022-11-24 04:30:03下载
    积分:1
  • C#使用SqlDataAdapter对象的Fill方法填充DataSet
    C#使用SqlDataAdapter对象的Fill方法填充DataSet,具体是调用DataSet的Copy方法复制DataSet中的内容,完成填充的功能:   private void Form1_Load(object sender, EventArgs e)   {    //实例化SqlConnection变量conn,连接数据库    conn = new SqlConnection("server=.;database=db_14;uid=sa;pwd=");    //创建一个SqlCommand对象    SqlCommand cmd = new SqlCommand("select * from tb_test", conn);    SqlDataAdapter sda = new SqlDataAdapter();//创建一个SqlDataAdapter对象    //设置SqlDataAdapter对象的SelectCommand属性,设置执行的SQL语句    sda.SelectCommand = cmd;    ds = new DataSet(); //实例化DataSet    sda.Fill(ds, "test");//使用SqlDataAdapter对象的Fill方法填充DataSet    dataGridView1.DataSource = ds.Tables[0];//设置dataGridView1的数据源   }   private void button1_Click(object sender, EventArgs e)   {    DataSet ds1 = ds.Copy();//调用DataSet的Copy方法复制ds中的内容    dataGridView2.DataSource = ds1.Tables[0];//将ds1作为dataGridView2的数据源   }
    2022-11-04 09:50:03下载
    积分:1
  • C#演示用Brush填充Rectangle图形
    C#画矩形,然后使用Brush填充Rectangle图形,单击按钮后会生成一个填充过的图形,需要创建Graphics对象,创建一个Brush对象,再使用Rectangle绘制一个矩形,然后使用Brush填充,实现这一过程,核心代码如下:   private void button1_Click(object sender, EventArgs e)   {    Graphics ghs = this.CreateGraphics();//创建Graphics对象    Brush mybs = new SolidBrush(Color.Red);//使用SolidBrush类创建一个Brush对象    Rectangle rt = new Rectangle(10, 10, 100, 100);//绘制一个矩形    ghs.FillRectangle(mybs, rt);//用Brush填充Rectangle   }
    2022-07-06 17:10:54下载
    积分:1
  • C# 利用“[^]”通配符进行查询
    C# 利用“[^]”通配符进行查询   string P_Str_ConnectionStr = string.Format(//创建数据库连接字符串    @"server=WIN-GI7E47AND9RLS;database=db_TomeTwo;uid=sa;pwd=");   string P_Str_SqlStr = string.Format(//创建SQL查询字符串    "SELECT 学生姓名,年龄,性别,家庭住址 FROM tb_Student");   SqlDataAdapter P_SqlDataAdapter = new SqlDataAdapter(//创建数据适配器    P_Str_SqlStr, P_Str_ConnectionStr);   DataTable P_dt = new DataTable();//创建数据表   P_SqlDataAdapter.Fill(P_dt);//填充数据表   return P_dt;//返回数据表
    2022-03-20 15:58:24下载
    积分:1
  • C# 将图像控件的定义导出为XAML文件
    C# 将图像控件的定义导出为XAML文件,支持的图像文件:图像文件(JPeg,Gif,Bmp,etc,tiff,png)等。   string MyXAML= System.Windows.Markup.XamlWriter.Save(this.image1);   if (System.IO.File.Exists("MyXaml.xaml"))    System.IO.File.Delete("MyXaml.xaml");   System.IO.File.AppendAllText("MyXaml.xaml", MyXAML);   MessageBox.Show(MyXAML, "MyXaml.xaml文件的内容", MessageBoxButton.OK);
    2022-04-14 09:51:54下载
    积分:1
  • 696518资源总数
  • 104537会员总数
  • 64今日下载