Application.DoEvents()是多任务处理的一种形式吗?

问题描述 投票:-1回答:1

Applicataion.DoEvents()在Windows窗体中。

我很确定这是一种非常早期,非常原始的WindowsForms多任务处理形式。它具有所有的故事和机制:暂停执行调用事件。使其余的所述事件成为后续运行的延续。允许其他事件/进程运行。只是有一些其他问题,因为MT是通过EventQueue实现的。甚至可能递归调用队列。

但是我只是碰到了一个海报,说[[insists它与“多任务处理无关”。我无法理解我对功能或多任务处理的理解。

注意:我明确地认为Mutlti

threading仅是Multi tasking的实现。众所周知,DoEvents()不是Multi threading的一种形式,众所周知how poorly that one works in GUI Environments

我不知道这是基于意见的。至少这是一项专业意见,但这应该使它具有一定的回答意义。
c# winforms asynchronous multitasking
1个回答
0
投票
好吧,这称为抢先式多任务处理,意思是“中断任务”。您可以执行多个任务,但不能同时执行两个任务。这不是使用多个CPU内核,而是一种控制程序内部多个活动的方法。普通示例是,为了使程序有机会处理用户的鼠标移动,同时进行冗长的操作,运行可以被视为“批处理”的工作。

通常,您不必关心此“ DoEvents”,但是如果您知道某个过程运行了1秒钟以上,则应该手动调用它,将控件传递给另一个方法,从而停止执行自己的代码,让其他代码运行,然后继续自己的代码。因此它绝不是异步的,而是某种“多任务”。

它更多是一个控制结构,重要的是,您不知道内部发生了什么,您称它为“以防万一”-其他人可能需要一毫秒的CPU。

© www.soinside.com 2019 - 2024. All rights reserved.