windows事件和Windows定时器事件是否可以重入执行?

发布于 2024-11-07 00:44:56 字数 309 浏览 7 评论 0原文

我有“更新”方法,该方法在事件处理程序(单击按钮)和 Windows 窗体计时器回调中执行。是否可以同时执行两个“Update”(重入)?也就是说,当定时器回调正在执行(调用Update方法)时,用户单击按钮,并且单击处理程序执行Update。

或者,这两个 Update 方法是否完全序列化,因为它们都在 UI 线程中执行。

或者,Update是否可以将线程置于某种“Alertable Wait”状态(我对此不是很清楚),并且Click Handler可以执行as APC?

你可以看到,我对此完全困惑......

任何解释将不胜感激!

I have "Update" method which is executes in event handler (button click), and in Windows forms Timer callback. Is it possible for two "Update" (re-entrancy) to be executing at the same time? That is, while the timer callback is executing (calling Update method), the user clicks the button, and the click handler executes Update.

Or, is it the case that, the two Update methods are completely serialized since both execute in the UI thread.

Or, is it the case that Update could put the thread in some kind of "Alertable Wait" (I am not very clear on this), and the Click Handler could execute an as APC?

You can see, I am totally mixed up on this...

Any explanations will be highly appreciated!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

丘比特射中我 2024-11-14 00:44:56

它取决于所使用的一种计时器:在主 UI 线程上执行的计时器 (System.Windows.Forms.Timer - 重入是不可能的)或在自己的线程中执行(System.Threading.Timer - 可以重新进入)。

It depends on a sort of the timer used: one that executes on the main UI thread (System.Windows.Forms.Timer - re-entrancy is impossible) or one executed in its own thread (System.Threading.Timer - re-entrancy is possible).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文