c# lock锁与 Threading.Timer 结合使用的问题 , 大版主进来啊 [问题点数:200分,结帖人purexiafeng]

Bbs4
本版专家分:1660
结帖率 96.05%
Bbs7
本版专家分:15976
Bbs7
本版专家分:15976
Bbs2
本版专家分:273
Bbs2
本版专家分:273
Bbs2
本版专家分:273
Bbs1
本版专家分:0
Bbs2
本版专家分:382
Bbs4
本版专家分:1660
Bbs4
本版专家分:1660
Bbs4
本版专家分:1660
Bbs3
本版专家分:599
Bbs2
本版专家分:264
Bbs1
本版专家分:15
Bbs1
本版专家分:15
Bbs6
本版专家分:6597
Bbs4
本版专家分:1941
Bbs7
本版专家分:24939
Bbs6
本版专家分:7982
Bbs6
本版专家分:6597
Bbs4
本版专家分:1470
Bbs4
本版专家分:1941
Bbs9
本版专家分:82866
Blank
蓝花 2008年5月 .NET技术大版内专家分月排行榜第三
Bbs7
本版专家分:22917
Blank
蓝花 2008年7月 .NET技术大版内专家分月排行榜第三
Bbs7
本版专家分:15698
Bbs4
本版专家分:1660
Bbs4
本版专家分:1660
Bbs4
本版专家分:1660
Bbs4
本版专家分:1941
Bbs7
本版专家分:11048
Bbs4
本版专家分:1660
Bbs4
本版专家分:1660
Bbs4
本版专家分:1941
Bbs4
本版专家分:1660
Bbs1
本版专家分:100
Bbs3
本版专家分:547
为什么程序中加了System.Threading.Timer后运行不长时间,整个程序停止了。
急救:为什么程序中加了System.<em>Threading</em>.<em>Timer</em>后运行不长时间,整个程序停止了。 代码如下: using System.<em>Threading</em>; namespace WindowsFor
[C#].NET中的三种Timer的区别和用法
//1.实现按用户定义的时间间隔引发事件的计时器。此计时器最宜用于 Windows 窗体应用程序中,并且必须在窗口中<em>使用</em>。  System.Windows.Forms.<em>Timer</em> // 2.提供以指定的时间间隔执行方法的机制。无法继承此类。  System.<em>Threading</em>.<em>Timer</em> //3.在应用程序中生成定期事件。  System.<em>Timer</em>s.<em>Timer</em>   这三个定时器位于
C#中对象的lock
写C#代码时,遇到有过程需要排队执行,就<em>使用</em>了<em>lock</em>方法进行<em>锁</em>定,<em>锁</em>定对象为一List&amp;lt;T&amp;gt;数组,在临界区代码段中对该数据进行读取操作。在某些偶然情况下,会发现该数据在<em>锁</em>定代码段以外进行访问时,会抛出一个异常:“源数组长度不足。请检查 srcIndex 和长度以及数组的下限”,此时再执行其他操作就无效了。后查阅资料发现,<em>lock</em><em>锁</em>定代码中对该数据的操作尚未执行完毕,别处就已在<em>使用</em>该数...
例说定时器System.Threading.Timer
本文通过实例演示System.<em>Threading</em>.<em>Timer</em>的<em>使用</em>方法。 下面是完整的实例代码。using System; using System.Windows;namespace <em>Threading</em><em>Timer</em>Exp { /// /// MainWindow.xaml 的交互逻辑 /// public partial c
c# 同步进程 lock千万别乱用
代码出现dug,定义了一个类型a,有int,string,datetime。List&amp;lt;a&amp;gt; p=new list&amp;lt;a&amp;gt;();p.add的条件是list里面没有a.string ,有则int加1。if(p.contains(a))    p.add(a)else    ...因为我<em>使用</em>的是多线程 list在满足条件下进行add,会在两分钟后被remove掉,所以 我<em>使用</em>了进程...
System.Threading.Timer用法和例子
(1)首先声明<em>Timer</em>变量: //一定要声明成局部变量以保持对<em>Timer</em>的引用,否则会被垃圾收集器回收! private System.<em>Threading</em>.<em>Timer</em> timerClose; (2)在上述自动执行代码后面添加如下<em>Timer</em>实例化代码: // Create a timer thread and start it timerClose = new System.Threa
定时器timer回调函数mutex所导致的问题
最近一个项目,做机器重启测试时,连续测试一段时间后会概率出现进入开机界面死机<em>问题</em>。抓到一个死机log,确定是自己写的一个驱动部份引起。大概是在定时器timer回调处理函数里面。 代码如下: static struct timer_list set_sp_work_timer; static int set_sp_gpio_val; static void timer_func(unsig...
C#中timer类的用法
C#中timer类的用法 关于C#中timer类 在C#里关于定时器类就有3个 1.定义在System.Windows.Forms里 2.定义在System.Thread
c#中Lock()的研究以及跨线程UI的操作
<em>c#</em>中Lock(<em>锁</em>)的研究以及跨线程UI的操作 本文只针对C#中,多线程同步所用到的<em>锁</em>(<em>lock</em>)作为研究对象。由于想更直观的显示结果,所以,在做demo的时候,就把多线程通过事件操作UI的代码也写了出来,留作备忘和分享吧。       其实多线程的同步,<em>使用</em>同步<em>锁</em>的方法用了好多次,今天无意中看到MSDN中,建议用:   1 private static readonly objec
lock嵌套使用有什么目的(c#)?
近日,看到一开源项目中有以下函数: public cGatherUrlItem Dequeue() { cGatherUrlItem item = null; <em>lock</em> (((ICollection)
C#多线程中lock的用法
最近在看些<em>c#</em>的代码,发现很多是以前没有接触到了,只能上网查,把比较好的整理下来。 经常碰到同时需要对某个数据进行操作,或者对某个文件进行读写操作,对于这些操作我们以前往往不能很好的进行处理,自从C#语言中引入了<em>lock</em>这个关键字,以上<em>问题</em>就比较容易予以解决了,下面就是一段简单的代码。 public class AccessControl() {     private static ob
重拾C#日常积累:lock给关键操作加
<em>lock</em>基础介绍<em>lock</em> 关键字将语句块标记为关键部分,方法是获取给定对象的互斥<em>锁</em>,执行语句,然后释放该<em>锁</em>。 以下示例包含一个 <em>lock</em> 语句。比如银行账户的金额变动这些,都需要通过加<em>锁</em>进行保护。下面是一个取钱的操作:class Account { decimal balance; private Object thisLock = new Object(); ...
c# lock (obj) 与 lock (this) 区别
<em>lock</em>(obj) <em>锁</em>定obj 对象              <em>lock</em>(this) <em>锁</em>定 当前实例对象,如果有多个类实例的话,<em>lock</em><em>锁</em>定的只是当前类实例,对其它类实例无影响。 直接上代码。 主窗体代码如下: delegate void SetTextCallback(string text);         public Form1()         {
C#学习- 关于lock,mutex和semephore
C#提供了一个关键字<em>lock</em>,它可以把一段代码定义为互斥段(critical section),互斥段在一个时刻内只允许一个线程进入执行,而其他线程必须等待。每个线程都有自己的资源,但是代码区是共享的,即每个线程都可以执行相同的函数。这可能带来的<em>问题</em>就是几个线程同时执行一个函数,导致数据的混乱,产生不可预料的结果,因此我们必须避免这种情况的发生。<em>lock</em>是一种比较简单的线程同步方式,它是通过为给定...
C#的线程安全类为何还是得加 lock ?
public void ParallelBreak() { Console.WriteLine("\n————— {0} —————", MethodBase.GetCurrentMethod().N
C#多线程 && 多线程中lock用法的经典实例
进程(Process)是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源。一个正在运行的应用程序在操作系统中被视为一个进程,进程可以包括一个或多个线程。线程是操作系统分配处理器时间的基本单元,在进程中可以有多个线程同时执行代码。进程之间是相对独立的,一个进程无法访问另一个进程的数据(除非利用分布式计算方式),一个进程运行的失败也不会影响其他进程的运行,Windows系统就是利用...
c# lock使用及注意事项
<em>lock</em>: 该关键字将语句块标记为临界区,方法是获取给定对象的互斥<em>锁</em>,执行语句,然后释放该<em>锁</em>。 举例:    单件模式public class Singleton{    private static Singleton instance = null;    private static readonly object syncRoot = new object();    pr
C#利用System.Threading.Timer实现多线程中遇到的问题,请求帮助!
源代码如下: using System; using System.Collections.Generic; using System.Text; using System.<em>Threading</em>; na
c#Sytem.Threading.Timer线程TimerCallBack委托中方法涉及访问ui成员用考虑跨线程安全问题
public partial class Screen1 { private System.<em>Threading</em>.<em>Timer</em> t1; void Screen1_Opened(System.Object
C#多线程Lock定的使用例子(多线程线程同步)
这个例子是一个模拟多个人在多台提款机上同时提取一个账户的款的情况。 在存取的过程中 可能 A线程取了100   而B线程那边还看见账户上没少掉那100快,所以导致数据不统一,赋值出现<em>问题</em>。 下面代码则可以测试出加上Lock<em>锁</em>定 与 不加的区别。   先上两个图。 第一个(加了Lock的程序):   加了的 数据每一条都是完整无错的,因为他们执行Lo
C# Lock和Monitor
Object thisLock = new Object(); <em>lock</em> (thisLock) { //TODO... } //等价于 try { Monitor.Enter(thisLoc...
C# lock的理解 ,注意看注释
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.<em>Threading</em>; using System.<em>Threading</em>.Tasks;namespace LockTest { class Program { /*
lock 语句(C# 参考)
<em>lock</em> 语句获取给定对象的互斥 <em>lock</em>,执行语句 <em>lock</em>,然后释放 <em>lock</em>。 持有 <em>lock</em> 时,持有 <em>lock</em> 的线程可以再次获取并释放 <em>lock</em>。 阻止任何其他线程获取 <em>lock</em> 并等待释放 <em>lock</em>。 <em>lock</em> 语句具有以下格式 C# <em>lock</em> (x) { // Your code... } 其中 x 是引用类型的表达式。 它完全等同于 C# object ...
C#中的lock关键字
前几天与同事激烈讨论了一下,有一点收获,记录起来。  首先给出MSDN的定义:  <em>lock</em> 关键字可以用来确保代码块完成运行,而不会被其他线程中断。这是通过在代码块运行期间为给定对象获取互斥<em>锁</em>来实现的。  先来看看执行过程,代码示例如下:private static object
c# Thread 线程(三) lock线程
在多线程编程中,可能会有多个线程并发的(或同时)执行一段代码,但是某些情况下需要在同一时刻只能有一个线程执行,避免某些对象的调用冲突或内存<em>使用</em>冲突,这就需要用到<em>锁</em>(<em>lock</em>)。<em>lock</em> 关键字可以用来确保代码块完成运行,而不会被其他线程中断。在同一个时刻内只允许一个线程进入执行,而其他线程必须等待。 public partial class TestWindow : Window {...
C#串口里怎么用lock?
我用DataReceived接收数据。 存在<em>问题</em>:我还没有处理完第一条接收到的数据,第2条数据就已经来了。(用sleep貌似不是好的选择) 看到网上的一些思路:将接收到的数据放入一个公共缓冲区, 当缓
C# Lock 关键字定静态变量和非静态变量的区别
private static readonly object Locker1 = new object(); private readonly object Locker2 = new object(); 单实例非静态<em>锁</em>,线程没有并发(加<em>锁</em>成功); 单实例静态所,线程没有并发(加<em>锁</em>成功); 多实例非静态所,线程并发(加<em>锁</em>失败); 多实例静态所,线程没有并发(加<em>锁</em>成功)
C# 定时器的使用 System.Windows.Forms.Timer,System.Timers.Timer,System.Threading.Timer
在Framework中存在着4种定时器:其中分为两类, 多线程计时器 1:System.<em>Threading</em>.<em>Timer</em> 2:System.<em>Timer</em>s.<em>Timer</em> 特殊目的的单线程计时器: 1:System.Windows.Forms.<em>Timer</em>(Windows Forms <em>Timer</em>) 2:System.Windows.<em>Threading</em>.Dispatcher<em>Timer</em>(WPF ti
C#中Monitor和Lock以及区别
1.Monitor.Enter(object)方法是获取<em>锁</em>,Monitor.Exit(object)方法是释放<em>锁</em>,这就是Monitor最常用的两个方法,当然在<em>使用</em>过程中为了避免获取<em>锁</em>之后因为异常,致<em>锁</em>无法释放,所以需要在try{} catch(){}之后的finally{}结构体中释放<em>锁</em>(Monitor.Exit())。   2.Monitor的常用属性和方法:     Enter(O
请教局部变量创建的System.Threading.Timer ,如何关闭??《有实际的代码和例子》
<em>问题</em>如下,我在定时器的回调函数中需要做一个判断,当达到某个条件后,停止定时器,并释放定时器,也就是这个定时器再也不用了,请教高手怎么做。 if(obj.num >= 10) { //运行10次后,需要
C# 线程Timer的Change方法解释
<em>Timer</em>.Change(Timeout.Infinite,Timeout.Infinite)
System.Threading.Timer 定时器功能
System.<em>Threading</em>.<em>Timer</em> 定时器功能
C# lock(this)后面的作用域{}可有可无吗?代码如下
-
c# timer不能停止
代码如下,声明了个timer,这应该是system.windows.forms.timer吧?点击开始按钮timer能开始,按空格的时候,能看到方法执行了,但是timer就是停不了,求搭救!!!! u
C#中Timer使用及解决重入问题
解决方案三个,成功解决timer组件和progressbar更新偶尔死机的<em>问题</em> 1、<em>使用</em><em>lock</em>(Object)的方法来防止重入,表示一个<em>Timer</em>处理正在执行,下一个<em>Timer</em>发生的时候发现上一个没有执行完就等待执行,适用重入很少出现的场景(具体也没研究过,可能比较占内存吧)。   代码跟上面差不多,在触发的方法中加入<em>lock</em>,这样当线程2进入触发的方法中,发现已经被<em>锁</em>,会等待
C#的3个Timer
再C#里现在有3个<em>Timer</em>类: System.Windows.Forms.<em>Timer</em>System.<em>Threading</em>.<em>Timer</em>System.<em>Timer</em>s.<em>Timer</em>  (推荐) 这三个<em>Timer</em>我想大家对System.Windows.Forms.<em>Timer</em>已经很熟悉了,唯一我要说的就是这个<em>Timer</em>在激发<em>Timer</em>.Tick事件的时候,事件的处理函数是在程序主线程上执行的,所以在Win
System.Threading.Timer这类的定时器如何任意控制它的启动和停止?
System.<em>Threading</em>.<em>Timer</em>这类的定时器如何任意控制它的启动和停止? 求指教。谢谢。
使用C# lock同时访问共享数据
<em>使用</em>C# <em>lock</em>同时访问共享数据 经常碰到同时需要对某个数据进行操作,或者对某个文件进行读写操作,对于这些操作我们以前往往不能很好的进行处理,自从C#语言中引入了<em>lock</em>这个关键字,以上<em>问题</em>就比较容易予以解决了,下面就是一段简单的代码。Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.
用C#的lock()的问题。当lock(string)产生的问题
代码如下 static void Main(string args) { for (int i = 0; i <10; i++) { Thread td = new Thread(ReadInt);
问:C#中LOCK的用法
问:C#中LOCK的用法,能否搞个最简单的例子研究研究
c# 中对lock中参数讨论
由于要实现多线程写同一文件,所以<em>使用</em>了<em>lock</em><em>锁</em>对代码块加<em>锁</em>,来达到多线程同步的目的。貌似以前都没有认真的了解过<em>lock</em>,今天百度了一下,做个小结。
C#使用lock定静态变量
http://bbs.csdn.net/topics/391055599 (一) 如果简写,那么可以写: C# code? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 public class Store {     private static DataTable dt;
C# lock关键字 同步代码块
C# <em>lock</em> 同步代码块
让我们一起写出更有效的CSharp代码吧,少年们!
周末空闲,选读了一下一本很不错的C#语言<em>使用</em>的书,特此记载下便于对项目代码进行重构和优化时查看。 Standing On Shoulders of Giants,附上思维导图,其中标记的颜色越深表示在实际中的实际意义越大。   名称 内容和示例 提供API时尽量提供泛型接口 Public interfa
【C#】lock语句及在单例模式中应用
C#中的<em>lock</em>语句是怎么回事,有什么作用? C#中的<em>lock</em>语句将<em>lock</em>中的语句块视为临界区,让多线程访问临界区代码时,必须顺序访问。他的作用是在多线程环境下,确保临界区中的对象只被一个线程操作,防止出现对象被多次改变情况。 注意的地方有:<em>lock</em>对象必须是一个不可变对象,否则无法阻止另一个线程进入临界区。最好是private static readonly 或者private stati
c#中Monitor的使用
首先<em>lock</em>和Minitor有什么区别呢? 其实<em>lock</em>在IL代码中会被翻译成Monitor。也就是Monitor.Enter(obj)和Monitor.Exit(obj). <em>lock</em>(obj) { } 等价为: try {           Monitor.Enter(obj)  } catch() {} finally {       Monitor.Exit(obj)  } 所以<em>lock</em>能
C# 生成订单号的几种方式
public class RandomNumber { public static object _<em>lock</em> = new object(); public static int count = 1; public string GetRandom1() { <em>lock</em>(_<em>lock</em>) {
关于lock(this)的说明及用法
一. 为什么要<em>lock</em>,<em>lock</em>了什么?当我们<em>使用</em>线程的时候,效率最高的方式当然是异步,即各个线程同时运行,其间不相互依赖和等待。但当不同的线程都需要访问某个资源的时候,就需要同步机制了,也就是说当对同一个资源进行读写的时候,我们要使该资源在同一时刻只能被一个线程操作,以确保每个
深入理解C#:编程技巧总结(一)
以下总结参阅了:MSDN文档、《C#高级编程》、《C#本质论》、前辈们的博客等资料,如有不正确的地方,请帮忙及时指出!以免误导! 1..实现多态性的两种方式:继承抽象类、实现接口 其实就是协变的应用,通过把对象向上转型为基类或接口类型,对它调用成员,可实现多态性,即运行时调用的是对应对象的实现版本成员。这两种方式的区别: 继承抽象类:会用掉唯一1次的继承机会,但可以继承任何成员(包括字
C# 理解lock - 闯.漠北 - 博客园
C# 理解<em>lock</em> 一. 为什么要<em>lock</em>,<em>lock</em>了什么? 当我们<em>使用</em>线程的时候,效率最高的方式当然是异步,即各个线程同时运行,其间不相互依赖和等待。但当不同的线程都需要访问某个资源的时候,就需要同步机制了,也就是说当对同一个资源进行读写的时候,我们要使该资源在同一时刻只能被一个线程操作,以确保每个操作都是有效即时的,也即保证其操作的原子性。<em>lock</em>是C#中最常用的同步方式,
C# 解决死
处理这个死<em>锁</em><em>问题</em>,花了好几天,相信遇到的同学,一样头疼,但有个好辅助类的话(好在.net的API足够强大),就没这么头疼了 注意 本篇文章的解决方案只适合<em>使用</em><em>lock</em>(obj),或是:Monitor.Enter(obj); …. Monitor.Exit(obj)的方式 类似酱紫的死<em>锁</em> 如果你<em>使用</em>的是:AutoResetEvent.Set/Rest, Monitor.Wait/Puls...
C#中的争用条件与死问题
争用条件 对于两个异步执行的线程,如果同时请求同一个对象,会造成读取数据出现<em>问题</em>。 首先,定义一个类: class MyThreadObject { private int state = 5; public void ChangeState() { state++; if (st...
同步 Lock
package com.atguigu.juc;import java.util.concurrent.<em>lock</em>s.Lock;import java.util.concurrent.<em>lock</em>s.ReentrantLock;/* * 一、用于解决多线程安全<em>问题</em>的方式: *  * synchronized:隐式<em>锁</em> * 1. 同步代码块 *  * 2. 同步方法 *  * jdk 1.5 后: * 3....
synchronized和Lock之间的关系
1、synchronized用于少量同步上,ReentrantLock用于大量同步。 2、synchronized是在JVM层面上实现同步的,系统可以监控<em>锁</em>;ReentrantLock<em>使用</em>代码实现。 3、synchronized线程执行发生异常,JVM会让线程释放<em>锁</em>;ReentranLock在finally中必须释放<em>锁</em>,不然容易造成线程死<em>锁</em>。 4、synchronized当线程a获得<em>锁</em>的时候,线程...
c#多线程数据共享解决办法之一:lock排它
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.<em>Threading</em>; namespace 多线程数据共享 { class Program { static bool <em>lock</em>OrNot; static...
C#Lock关键字的使用
前言       这shu'yu
程序员实用工具网站
目录 1、搜索引擎 2、PPT 3、图片操作 4、文件共享 5、应届生招聘 6、程序员面试题库 7、办公、开发软件 8、高清图片、视频素材网站 9、项目开源 10、在线工具宝典大全 程序员开发需要具备良好的信息检索能力,为了备忘(收藏夹真是满了),将开发过程中常用的网站进行整理。 1、搜索引擎 1.1、秘迹搜索 一款无敌有良心、无敌安全的搜索引擎,不会收集私人信息,保...
我花了一夜用数据结构给女朋友写个H5走迷宫游戏
起因 又到深夜了,我按照以往在csdn和公众号写着数据结构!这占用了我大量的时间!我的超越妹妹严重缺乏陪伴而 怨气满满! 而女朋友时常埋怨,认为数据结构这么抽象难懂的东西没啥作用,常会问道:天天写这玩意,有啥作用。而我答道:能干事情多了,比如写个迷宫小游戏啥的! 当我码完字准备睡觉时:写不好别睡觉! 分析 如果用数据结构与算法造出东西来呢? ...
帮助seo的网站结构网下载
网站的结构图。按它说的,你的网页可以被的更多,更快 相关下载链接:[url=//download.csdn.net/download/chenyouhp/2270463?utm_source=bbsseo]//download.csdn.net/download/chenyouhp/2270463?utm_source=bbsseo[/url]
共8部分-黑客编程VC专辑完整版.part8.rar下载
共8部分-黑客编程VC专辑完整版.part8.rar 2分啦~! 相关下载链接:[url=//download.csdn.net/download/xuqikang/2954842?utm_source=bbsseo]//download.csdn.net/download/xuqikang/2954842?utm_source=bbsseo[/url]
...网页设计专用下载
让人更好的理解和运用网页设计进行网页操作以便更好地进行网页设计 相关下载链接:[url=//download.csdn.net/download/lijiabin0816/5726739?utm_source=bbsseo]//download.csdn.net/download/lijiabin0816/5726739?utm_source=bbsseo[/url]
相关热词 用户权限才c# c#应用程序实例 c#请求接口数据 c#高效读写plc c#代码规范快捷方式 c#编辑模板 c# 内存存储 c# poi 生成图表 c#页面 弹出页面选择框 c# 不实现 继承接口
我们是很有底线的