微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CLR是否在内部产生线程以响应计时器事件?

如何解决CLR是否在内部产生线程以响应计时器事件?

| 汉斯和我最近就该主题进行了少量讨论,我很好奇它是如何实现的。 请参阅以下注释中的初始讨论:c#计时器是否自然是多线程的?     

解决方法

        盯着.Net 4.0参考源,ѭ0似乎使用ѭ1来处理实际的实现细节。后者通过调用
AddTimerNative
生成定时器。
AddTimerNative
是内部呼叫。 谷歌搜索
AddTimerNative
会产生很多有趣的结果,包括威利·德诺伊特(Willy Denoyette)的评论,他在评论中称其为CreateTimerQueueTimer。 该页面指出“回调函数已排队到线程池中。”     ,        好吧,我做了一些调查...详细信息在我的博客文章中 简而言之,仅从此处进行总结: 至于SSCLI20,汉斯是完全正确的。真正有单独的线程来处理APC和排队的计时器。谢谢您的坚持,顺便说一句。我有机会挖掘一些有趣的东西:) 在较新的系统上,仍然可以在没有其他线程的情况下实现它。我只是错误地假设编写CLR 2.0时它已经存在。有关详细信息,请参见CreateThreadpoolTimer,SetThreadpoolTimer和CloseThreadpoolTimer。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。