﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-求知-最新评论</title><link>http://www.cnblogs.com/DataFlow/CommentsRSS.aspx</link><description /><language>zh-cn</language><pubDate>Thu, 17 May 2012 09:40:37 GMT</pubDate><lastBuildDate>Thu, 17 May 2012 09:40:37 GMT</lastBuildDate><generator>cnblogs</generator><item><title>Re:Thread.Sleep和Timer性能比较</title><link>http://www.cnblogs.com/DataFlow/archive/2010/08/17/1408731.html#1895059</link><dc:creator>烈火★寒冰</dc:creator><author>烈火★寒冰</author><pubDate>Mon, 16 Aug 2010 16:24:05 GMT</pubDate><guid>http://www.cnblogs.com/DataFlow/archive/2010/08/17/1408731.html#1895059</guid><description><![CDATA[分析透彻，观点各异。学习学习<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/DataFlow/" target="_blank">烈火★寒冰</a> 2010-08-17 00:24 <a href="http://www.cnblogs.com/DataFlow/archive/2010/08/17/1408731.html#1895059#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: Thread.Sleep和Timer性能比较</title><link>http://www.cnblogs.com/DataFlow/archive/2009/05/20/1408731.html#1532328</link><dc:creator>Pvistely</dc:creator><author>Pvistely</author><pubDate>Tue, 19 May 2009 16:10:51 GMT</pubDate><guid>http://www.cnblogs.com/DataFlow/archive/2009/05/20/1408731.html#1532328</guid><description><![CDATA[我也来插一腿，呵呵<br/>我看了下Thread.Timer跟Windows.Forms.Timer的代码，发现WinForm的Timer是用SetTimer这个API直接创建TIMER的，<br/>[DllImport(&quot;user32.dll&quot;, CharSet=CharSet.Auto, ExactSpelling=true)]<br/>public static extern IntPtr SetTimer(HandleRef hWnd, int nIDEvent, int uElapse, IntPtr lpTimerFunc);<br/> <br/>但Thread.Timer是用.NET底层创建的Timer，具体怎么样我也没深入分析，<br/>Thread.Timer是基于TimerBase对象来做计时器管理，<br/>internal void AddTimer(TimerCallback callback, object state, uint dueTime, uint period, ref StackCrawlMark stackMark)<br/>{<br/>    if (callback == null)<br/>    {<br/>        throw new ArgumentNullException(&quot;TimerCallback&quot;);<br/>    }<br/>    _TimerCallback callback2 = new _TimerCallback(callback, state, ref stackMark);<br/>    state = callback2;<br/>    this.AddTimerNative(state, dueTime, period, ref stackMark);<br/>    this.timerDeleted = 0;<br/>}<br/><br/> <br/>其中的AddTimerNative就是用来增加新的计时器，应该就是线程池中的操作<br/><br/><br/>我在用DataGridView或其他Grid时做数据绑定操作确实会出现莫名其妙的错误，<br/><br/>因此也在找SLEEP、THREAD.TIMER及WINFORM.TIMER的比较，希望能有个结果<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/DataFlow/" target="_blank">Pvistely</a> 2009-05-20 00:10 <a href="http://www.cnblogs.com/DataFlow/archive/2009/05/20/1408731.html#1532328#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: Thread.Sleep和Timer性能比较</title><link>http://www.cnblogs.com/DataFlow/archive/2009/03/12/1408731.html#1475421</link><dc:creator>tssing</dc:creator><author>tssing</author><pubDate>Thu, 12 Mar 2009 12:24:49 GMT</pubDate><guid>http://www.cnblogs.com/DataFlow/archive/2009/03/12/1408731.html#1475421</guid><description><![CDATA[@小猴子<br/>DataGridView+bindingsource....<br/>用线程会出错，，而用timer不会。。。<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/DataFlow/" target="_blank">tssing</a> 2009-03-12 20:24 <a href="http://www.cnblogs.com/DataFlow/archive/2009/03/12/1408731.html#1475421#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: Thread.Sleep和Timer性能比较</title><link>http://www.cnblogs.com/DataFlow/archive/2009/03/12/1408731.html#1475230</link><dc:creator>小猴子</dc:creator><author>小猴子</author><pubDate>Thu, 12 Mar 2009 09:09:34 GMT</pubDate><guid>http://www.cnblogs.com/DataFlow/archive/2009/03/12/1408731.html#1475230</guid><description><![CDATA[@韦恩卑鄙<br/><br/>好象使用TIMER的时候会堵塞主线程，感受最深的就是DELPHI的TIMER。<br/>半死不活其实不是死了，是卡在那里。弄得用户很不舒服！<br/>在VS里面，还很少用这个东西！还是比较习惯用THREAD，更方便，更自由点。<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/DataFlow/" target="_blank">小猴子</a> 2009-03-12 17:09 <a href="http://www.cnblogs.com/DataFlow/archive/2009/03/12/1408731.html#1475230#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: Thread.Sleep和Timer性能比较</title><link>http://www.cnblogs.com/DataFlow/archive/2009/03/12/1408731.html#1475075</link><dc:creator>tssing</dc:creator><author>tssing</author><pubDate>Thu, 12 Mar 2009 07:35:34 GMT</pubDate><guid>http://www.cnblogs.com/DataFlow/archive/2009/03/12/1408731.html#1475075</guid><description><![CDATA[受教了<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/DataFlow/" target="_blank">tssing</a> 2009-03-12 15:35 <a href="http://www.cnblogs.com/DataFlow/archive/2009/03/12/1408731.html#1475075#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: Thread.Sleep和Timer性能比较</title><link>http://www.cnblogs.com/DataFlow/archive/2009/03/12/1408731.html#1475070</link><dc:creator>gxh973121</dc:creator><author>gxh973121</author><pubDate>Thu, 12 Mar 2009 07:33:40 GMT</pubDate><guid>http://www.cnblogs.com/DataFlow/archive/2009/03/12/1408731.html#1475070</guid><description><![CDATA[--引用--------------------------------------------------<br/>tssing: 讨论这么多呀<br/>timer和thread是不一样的概念,<br/>timer是单线程,,thread是多线程,,<br/>--------------------------------------------------------<br/>System.timer 只是对thread 进行了下包装，是一样的<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/DataFlow/" target="_blank">gxh973121</a> 2009-03-12 15:33 <a href="http://www.cnblogs.com/DataFlow/archive/2009/03/12/1408731.html#1475070#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: Thread.Sleep和Timer性能比较</title><link>http://www.cnblogs.com/DataFlow/archive/2009/03/12/1408731.html#1475036</link><dc:creator>tssing</dc:creator><author>tssing</author><pubDate>Thu, 12 Mar 2009 07:13:44 GMT</pubDate><guid>http://www.cnblogs.com/DataFlow/archive/2009/03/12/1408731.html#1475036</guid><description><![CDATA[讨论这么多呀<br/>timer和thread是不一样的概念,<br/>timer是单线程,,thread是多线程,,<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/DataFlow/" target="_blank">tssing</a> 2009-03-12 15:13 <a href="http://www.cnblogs.com/DataFlow/archive/2009/03/12/1408731.html#1475036#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: Thread.Sleep和Timer性能比较</title><link>http://www.cnblogs.com/DataFlow/archive/2009/03/12/1408731.html#1474847</link><dc:creator>韦恩卑鄙</dc:creator><author>韦恩卑鄙</author><pubDate>Thu, 12 Mar 2009 04:37:19 GMT</pubDate><guid>http://www.cnblogs.com/DataFlow/archive/2009/03/12/1408731.html#1474847</guid><description><![CDATA[--引用--------------------------------------------------
<br/>小猴子: System.Timer
<br/>已经很少用这个东西了，基本都是用THREAD。TIMER不好用，除非任务很简单，否则经常挂起在那里，半死不活的。
<br/>--------------------------------------------------------
<br/>threading.timer 设置为定时触发模式  怎么会半死不活呢？
<br/>
<br/>
<br/>-----------
<br/> eaglet       
<br/>定时器确实是需要调整的，我用 Sleep 的方法做过一个定时器，Tick 是 100ms，运行几天以后误差依然在1s以内。如果不调整，误差会放大到10秒以上,我实测过。
<br/>---------------
<br/>
<br/>刚才看错了。 调整其实也可以从开始任务时候的时间值和当前时间值的差来计算调整。那样误差更小。<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/DataFlow/" target="_blank">韦恩卑鄙</a> 2009-03-12 12:37 <a href="http://www.cnblogs.com/DataFlow/archive/2009/03/12/1408731.html#1474847#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: Thread.Sleep和Timer性能比较</title><link>http://www.cnblogs.com/DataFlow/archive/2009/03/12/1408731.html#1474695</link><dc:creator>小猴子</dc:creator><author>小猴子</author><pubDate>Thu, 12 Mar 2009 02:13:09 GMT</pubDate><guid>http://www.cnblogs.com/DataFlow/archive/2009/03/12/1408731.html#1474695</guid><description><![CDATA[System.Timer<br/>已经很少用这个东西了，基本都是用THREAD。TIMER不好用，除非任务很简单，否则经常挂起在那里，半死不活的。<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/DataFlow/" target="_blank">小猴子</a> 2009-03-12 10:13 <a href="http://www.cnblogs.com/DataFlow/archive/2009/03/12/1408731.html#1474695#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: Thread.Sleep和Timer性能比较</title><link>http://www.cnblogs.com/DataFlow/archive/2009/03/11/1408731.html#1474481</link><dc:creator>NingDev</dc:creator><author>NingDev</author><pubDate>Wed, 11 Mar 2009 15:16:42 GMT</pubDate><guid>http://www.cnblogs.com/DataFlow/archive/2009/03/11/1408731.html#1474481</guid><description><![CDATA[学习，以前用过System.Timer 开触发事件，但是有时会将线程挂起，引出一些问题，后来就改用System.Threading 。<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/DataFlow/" target="_blank">NingDev</a> 2009-03-11 23:16 <a href="http://www.cnblogs.com/DataFlow/archive/2009/03/11/1408731.html#1474481#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>
