- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
如何让我的 C# 表单(比如说处于 for 循环中)免于锁定?我调用 Application.DoEvents();在循环之前还是之后?据我所知,使用 DoEvents 方法可以防止我的应用程序锁定。
最佳答案
您不应使用 Application.DoEvents() 来保持您的应用程序响应。
调用此方法将允许调度任何等待的窗口消息。这意味着如果用户单击按钮(或执行任何其他用户交互),将处理该操作。因此,这可能会导致重入。如果他们按下与导致您正在处理的循环的按钮相同的按钮,您将最终在完成之前再次调用例程!
相反,您应该使用 BackgroundWorker线程来执行长过程,然后在操作完成后执行所需的任何其他操作。例如,一旦按下一个按钮,您将启动工作线程,然后禁用您的按钮,这样就无法再次按下它。工作线程完成后,您将再次启用该按钮。
关于c# - 应用程序.DoEvents();,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/574110/
使用 Application.DoEvents 的必要性是什么?何时应该使用它? 最佳答案 Application.DoEvents 通常用于确保在 UI 线程上执行某些长时间运行的操作时定期处理事件
我已经实现了自定义的ThreadManager,该代码在测试过程中一直完美运行。当用户想要关闭应用程序时,关闭将暂停,直到所有线程退出或他们选择不等待而结束应用程序(经过30秒)。 我需要澄清的是,在
vb6中的“DoEvents”做什么? 为什么会收到错误消息“堆栈空间不足”?这是什么意思 ? 最佳答案 DoEvents()允许处理其他Windows消息。 出现堆栈空间不足错误的原因可能是因为Do
我有一组代码,其中包含: Application.Wait (Now + TimeValue("4:00:00")) 这实际上是将宏暂停了四个小时,从凌晨 3 点(当它完成运行代码时)到早上 7 点(
如果我循环执行一个长时间的操作(例如,处理文件)并且我想更新进度条,我需要使用 DoEvents,据我所知。 但是在函数的每个循环中调用它只会导致进度条的动画播放得非常快(或慢,取决于操作)。我知道这
是否有替代System.Windows.Forms.Application.DoEvents()的其他方法来刷新不使用System.Windows.Forms命名空间的事件队列?如果没有,可以在Web
如何让我的 C# 表单(比如说处于 for 循环中)免于锁定?我调用 Application.DoEvents();在循环之前还是之后?据我所知,使用 DoEvents 方法可以防止我的应用程序锁定。
我的代码很简单。它为不同的工作表导航不同的 URL,并从每个 URL 导入两个数据。 Public Sub import_Data() Dim ie As InternetExplorer, html
.NET 中 VB6 的 DoEvents 的等价物是什么? 编辑: 我有一个需要很长时间才能完成工作的 Sub。 (它有一个do-while)当我调用它时, 形式变成白色。在 VB6 中,我曾经在方
我有以下内容: $('body, a').addClass('cursor-wait'); for (var I=0, L = myArray.length; I < L; I++) { //
iPHone:我们使用 MonoTouch,但 Obj-C 答案没问题。 我的单例域对象需要一段时间才能获取所有数据,因此它在线程中内部运行获取的部分内容。 我需要通知 UI 域已完成。目前我正在这样
正如问题所问:在后台线程上调用Application.DoEvents()会做什么? 为了提供一些背景信息,我正在审查一个用C#为.NET CF编写的(不是我自己写的)相当复杂的解决方案。我之所以进行
当用户编辑单元格时,有一种方法可以使用 VBA 按 Enter 或向下键或选择另一个单元格吗?我正在为 children 创建一个测验,并希望确保 child 在输入答案后不会按 Enter 键,代码
我在 Excel VBA 中编写了一些简单的代码,使某个范围“闪烁”某种颜色 - 这是通过在相关范围上仔细绘制一个矩形对象并改变其透明度以使该框逐渐淡出来实现的。 以下是 Worksheet_Chan
我使用 DoEvents 强制更新状态栏(或工作表中的某些单元格)中的进度指示器,如下面的示例代码所示。但屏幕不刷新,或在某个时刻停止刷新。任务最终完成,但进度条没用。 为什么 DoEvents 不“
我们的遗留产品之一是 Winforms 应用程序,它不使用后台线程,而是在主 UI 线程上执行所有操作。它在这个主线程上运行一个恒定循环,每 20 毫秒调用一次 Application.DoEvent
我有一个简单的“工作”表单,它在自己的线程上运行,以让用户知道应用程序在长时间运行的操作中没有死掉。为了让工作表单更新,我必须插入一个 DoEvents()称呼。 我很好奇,这只会为我所在的当前线程抽
我正在浏览网站列表并获取它们的内容。为此,我首先将网页作为字符串获取,然后尝试通过其 DocumentText 属性将其推送到 System.Windows.Forms.WebBrowser 对象中。
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我正在尝试找出处理单选按钮点击触发的后台工作程序的最佳方法。我创建了一个非常简单的表单,其中包含 3 个单选按钮和一个标签。每个单选按钮共享相同的事件 radioButton_CheckedChang
我是一名优秀的程序员,十分优秀!