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

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

于 2022-02-20 发布 文件大小:9.09 kB
0 128
下载积分: 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# WPF演示窗体模式的切换
    C# WPF演示窗体模式的切换,可以切换到拖放模式,切换到编辑模式。编辑模式切换的例子。
    2022-05-14 05:31:05下载
    积分: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#复制当前屏幕上指定区域图像。运行效果如演示截图所示。最核心的两行代码如下所示:   private void button1_Click(object sender, EventArgs e)    {//复制当前屏幕上指定区域图像    Graphics g = this.pictureBox1.CreateGraphics();    g.CopyFromScreen(new Point(1, 1), new Point(0, 0),new Size(1201, 1201));   }
    2022-02-03 00:21:26下载
    积分:1
  • C# 仿微信大部分功能含登录扫描二维
    C# 版网页微信源代码,仿出了微信的大部分功能,加载登录微信需要扫描二维码,不过使用了较多的微信类库,微信主界面登录在WeChat_Desktop_App文件夹中。下载源码后请重新编译本源码,生成exe运行,界面如截图所示。   本C#微信项目,将微信的各个功能模块单独来开发,存放于各个文件夹中,比如登录模块、主界面模板、日志信息写入、文件上传下载日志和资源文件等,测试中发现可以登录微信,但是有些功能受测试条件限制,没能运行起来,大家下载源码后自己研究吧,有利于学习C#环境下的各个微信接口的使用。
    2023-04-27 07:20:05下载
    积分:1
  • Visual C#播放媒体文件
    Visual C#播放媒体文件,支持播放的文件格式:mpg;*.avi;*.wma;*.wmv;*.mov;*.wav;*.mp2; *.mp3,支持的播放控制功能有:播放、暂停、停止、静音等。   运行后的程序界面如图所示。
    2023-07-22 03:40:03下载
    积分:1
  • C# 键盘Ctrl+g控制蜂鸣器播放声音
    Visual C#播放声音,运行程序后,操作键盘上的Ctrl+g组合键发出蜂鸣声...这里的拖放声音是蜂鸣声,从音箱里发出,并不是从机箱的蜂鸣器发声。实现的过程和细节代码如下:   //导入 Windows Beep() API 函数   [DllImport("kernel32.dll")]   private static extern bool Beep(int freq, int dur);   // 定义PlaySound()要使用的常数   public const int SND_FILENAME = 0x00020000;   public const int SND_ASYNC = 0x0001;   // 导入 Windows PlaySound() 函数   [DllImport("winmm.dll")]   public static extern bool PlaySound(string pszSound,    int hmod,    int fdwSound);   [STAThread]   static void Main(string[] args)   {    // 使用Ctrl+g发出蜂鸣声    Console.Write("a");    Console.WriteLine("使用Ctrl+g发出蜂鸣声...");    Console.ReadLine();    // 使用 Windows API 发出蜂鸣声    Beep(800, 200);    Console.WriteLine("使用 Windows API 发出蜂鸣声...");    Console.ReadLine();    // 播放bells.wav文件    PlaySound("bells.wav",    0,    SND_FILENAME | SND_ASYNC);    Console.WriteLine("播放bells.wav文件...");    Console.ReadLine();   }
    2022-05-23 17:14:52下载
    积分:1
  • C# FileInfo获取文件的各种属性
    C# 创建FileInfo对象,获取文件的各种属性,可以获取到以下的文件信息:创建时间、上次访问时间、上次写入时间、文件名称、完整目录、完整路径、是否只读、文件长度。   具体的实现过程:   textBox1.Text = openFileDialog1.FileName;   FileInfo finfo = new FileInfo(textBox1.Text); //实例化FileInfo对象   string strCTime, strLATime, strLWTime, strName, strFName, strDName, strISRead;   long lgLength;   strCTime = finfo.CreationTime.ToShortDateString(); //获取文件创建时间   strLATime = finfo.LastAccessTime.ToShortDateString(); //获取上次访问该文件的时间   strLWTime = finfo.LastWriteTime.ToShortDateString(); //获取上次写入文件的时间   strName = finfo.Name; //获取文件名称   strFName = finfo.FullName;//获取文件的完整目录   strDName = finfo.DirectoryName;//获取文件的完整路径   strISRead = finfo.IsReadOnly.ToString(); //获取文件是否只读   lgLength = finfo.Length; //获取文件长度   MessageBox.Show("文件信息: 创建时间:" + strCTime + " 上次访问时间:" + strLATime + " 上次写入时间:" + strLWTime + " 文件名称:" + strName + " 完整目录:" + strFName + " 完整路径:" + strDName + " 是否只读:" + strISRead + " 文件长度:" + lgLength);   以上代码段请写入一个按钮事件中,这样当用户单击按钮时,执行上述代码。
    2023-02-14 12:35:03下载
    积分:1
  • STM32F1的SPWM逆变器
    #include "SPWM.h" #include "led.h" #include "usart.h" u16 TimerPeriod = 7200; u16 DutyFactor = 50; void TIM_Int_Init(void) {  GPIO_InitTypeDef GPIO_InitStructure;       TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;  NVIC_InitTypeDef NVIC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE);              RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4 | RCC_APB1Periph_TIM3,ENABLE);            //时钟使能              /* GPIOA配置:通道PA.6和PA.7作为输出引脚*/          GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;          GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;     &nbs
    2022-07-26 17:50:34下载
    积分:1
  • C# SQL语句查询指定区间内的数据库内容
    C# 查询数据库信息,具体到本例中,是查询第10到第20名的数据,这在平时的数据库运用中,十分实用,比如查询指定区间内的成绩、销售业绩等,将查询出的数据给予一定的等级,本程序查询到的数据将返回DataTable对象:   string P_Str_ConnectionStr = string.Format(//创建数据库连接字符串    @"server=WIN-GI7E47AND9RLS;database=db_TomeTwo;uid=sa;pwd=");   string P_Str_SqlStr = string.Format(//创建SQL查询字符串    @"SELECT TOP 10 * FROM (SELECT TOP 20 * FROM tb_Grade ORDER BY 总分 DESC) AS st ORDER BY 总分 ASC");   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-11-06 22:25:03下载
    积分:1
  • C# 与windows操作自定义函数合集
    C# 与windows操作自定义函数合集,包括了以下自定义函数:获取系统服务程序的状态信息、创建并写入自定义日志信息、向系统日志写入自定义数据、向应用程序日志写入自定义数据、判断当前操作用户的管理角色、判断与鼠标单击联动的修改键、判断启动的指定程序是否已关闭、使用API函数发送消息关闭程序、获取当前系统正在运行的程序、限制应用程序的运行时间、使用画图程序打开一个图像文件、以最大化窗口启动记事本程序、直接从应用程序返回到桌面、获取应用程序的版权信息等。
    2023-09-02 15:40:03下载
    积分:1
  • 696518资源总数
  • 105877会员总数
  • 14今日下载