首页 > 编程语言 >c#基础知识篇-Monitor

c#基础知识篇-Monitor

时间:2023-07-09 09:11:29浏览次数:28  
标签:Monitor c# Object 基础知识 对象 线程 Exit TryEnter

作用

提供同步访问对象的机制,实现线程同步。

命名空间&程序集

命名空间:System.Threading
程序集:System.Threading.dll

常用属性&方法

Monitor.Enter(Object) 在指定对象上获取排它锁
Monitor.Exit(Object) 释放指定对象上的排它锁
Monitor.Pulse 通知等待队列中的线程锁定对象状态的更改
Monitor.PulseAll 通知所有的等待线程对象状态的更改
Monitor.TryEnter(Object) 试图获取指定对象上的排它锁
Monitor.TryEnter(Object,Boolean) 尝试获取指定对象上的排它锁,并设置一个值,指示是否得到了该锁。
Wait(Object) 释放对象上的锁并阻止当前线程,直到它重新获取该锁。

 

 

 

 

 

 

 

 

注意事项

1. Enter和Exit是常用的两个方法,使用过程中须注意,为了防止获取锁之后因程序异常导致锁无法释放的情况,需要在try-catch之后的finally结构体中释放锁(Monitor.Exit())。

2. Monitor和TryEnter区别:TryEnter不会像Enter那样阻塞执行,如果线程成功进入关键区域会返回true

标签:Monitor,c#,Object,基础知识,对象,线程,Exit,TryEnter
From: https://www.cnblogs.com/mingcore/p/17538284.html

相关文章

  • 转载-ZC706应用笔记
    转载-ZC706应用笔记2020-01-0322:36:351、板载时钟配置。ZC706有200MHzLVDS差分时钟源SiT9102,作为ZYNQ系统参考时钟。 COMMS5板子上有ADCLK846时钟Buffer分路器作为AD9361的时钟源,AD846双路输出,分别作为两个AD9361的单端时钟源。ADCLK846的输入是1.8V有源晶振40MH......
  • 华泰证券FINTECH决赛第二题题解
    被第二题搞得坐牢2个半小时,在最后10分钟才确定推出的求和公式没问题,是除法取模不规范导致求解有偏差,只能说菜是原罪。这里贴一下赛后修改的代码,希望能对列位有些帮助,欢迎巨佬指导。思路:分奇偶讨论固定长度下伪回文串的数量,定义长度为\(n\)的伪回文串的数量为\(a_{n}\):(1)\(n\)......
  • CSP - J 训练营
    Day1数据结构含义:拿来存储数据的结构常见形式:1.变量只能存一个数。2.数组所有数组都开在全局变量。堆空间全局变量在堆空间。空间为$256M$,可以存$6.4×10^7$个int。栈空间局部变量在栈空间。空间为$64KB$,只能存$1.6×10^5$个int。......
  • excle的几种写出方式
    importpandaslis1=['a1','b1','c1','d1','e1']lis2=['a2','b2','c2','d2','e2']lis3=['a3','b3','c3','d3......
  • m基于FPGA的图像Harris角点特征提取和图像配准verilog实现,包含testbench和MATLAB辅助
    1.算法仿真效果Quartusii18.0+ModelSim-Altera6.6d StarterEdition的测试结果如下:       MATLAB2022a测试结果如下:     2.算法涉及理论知识概要      在计算机视觉领域中,图像特征提取和图像配准是两个基本的问题。图像特征提取是指从图......
  • Android显示系统——Transaction
    Transaction是应用与SurfaceFlinger交流的方式之一,应用通过打开一个Transaction,然后设置各种setXXX操作,最后通过apply把所有的设定操作提交给SurfaceFlinger进行处理。Transaction最常用的使用方法(套路)一般如下:Transactiont;t.setLayer(mSurfaceControl,0x7fffffff).s......
  • CAN总线
    CAN——ControllerAreaNetwork(控制器局域网)Controller——汽车领域术语ECU——electriccontrolunit电子控制单元所以CAN是不是理解成ECUAreaNetwork汽车电子控制单元局域网?CAN总线协议就是这个局域网里的通信协议。 参考up:https://www.bilibili.com/vi......
  • transmission提示"No space left on device"错误
    通过df-h发现根目录空间已满通过du-h-x--max-depth=1找到/var/cache/apt/archives和/lib/modules两个目录占用较大。/var/cache/apt/archives的清理:sudoapt-getclean/lib/modules的清理:先看一下当前使用的版本:uname-a使用命令查看目前已经安装的内核:dpkg--get-s......
  • tcl proc用法
    system:Nowyouneedtoactasaprogramsyntaxsearcher.Iwilltellyouthetypeofprogramandaskyouarelatedsyntaxquestion.Pleasethinkstepbysteptoensurethatyouranswerisaccurate.Ifexamplesareprovided,pleaseexecutethemsilentlyf......
  • CSAPP-Data Lab 思路记录
    >gcc-O1-Wall-m32-lm-obtestbits.cbtest.cdecl.ctests.c>Infileincludedfrombtest.c:16:0:>/usr/include/stdio.h:27:10:fatalerror:bits/libc-header-start.h:Nosuchfileordirectory>#include<bits/libc-header-start.h>>......