如何删除这个问题吗? 我原本以为,这个问题涉及到的DoEvents,但事实证明,事实并非如此。 :我在这里转贴的问题http://goo.gl/VpAEK与问题的更恰当的描述。
谢谢 - 我很欣赏该如何处理这个任何指导...
首先,我知道这个问题,作为一个总的概念已经被问过 - 我(希望)特定变异询问。 我也将开始在说,我明白具体原因不使用Application.DoEvents(),并确保每个人都摆在最前头,我们避免它只要有可能,并且有多个线程解决问题(不Application.DoEvents()的参与)在整个我们的应用程序。
话虽这么说,它是框架的一部分-我认为有在它有它的地方的具体情况。
我想咨询一下具体情况是单个线程的情况下,与纯粹的参与,其中(据我所知),通过定义用户界面 - 这不能在后台线程来完成。 更具体地讲,我们加载/的形式,配置一些UI元素,有时需要1-2秒即可完成,我希望有一个标签,在此过程中,指示正在发生的事情进行更新。 是不是真的有在后台线程做任何繁重/工作 - 这一切都UI。
如果我没有一个Application.DoEvents()调用的4个标签文本更改后,标签不重绘自身。 如果有人认为,在纯粹的UI, 单线程环境不同的解决了这个替代-我所有的耳朵。
问题是,零星的,因为我仍然试图牵制的情况下,Application.DoEvents()根本没有返回。
我真的了解所有有关的DoEvents投诉()方法(其中大部分是完全有效的!!!)和各种问题,它可能会导致! 因此,理想情况下,没有进入的利弊一个巨大的辩论/中的DoEvents的利弊调用(因为几乎对这个话题所有其他线程似乎做) - 我绑来回答的具体问题是 - 任何人都可以想到的任何原因为什么会的DoEvents只是挂? (即不归)?
如果要辩论的DoEvents()调用自身,有其长处和短处的伟大的描述在这里: http://goo.gl/4BtZf
- 我们的用户报告,这似乎并没有发生,而他们正在使用的应用,而是只有当他们放弃自己的电脑走了一会儿(屏幕保护程序的参与也许?)改变屏幕分辨率,而当我们已经注意到了这一点远程查看客户的电脑。
- 我们有坚持的应用程序最小化,当它发生更多的用户。
- 我们有坚持的应用程序最小化,当它发生更多的用户,和他们做在IE和/或前景的一些工作。
我们内部已经几乎完全无法重现它,除了今天上午的时候我做了所有上述功能,包括停用了一两分钟,我的网络连接和VPNing到服务器几分钟 - 同时我们的应用程序最小。
这个(字面第一次,我们已经能够重现它在内部)后,应用程序挂起,当我连接到这个过程中,它被挂在Application.DoEvents()线。 2线方法:
label.Text = “foo” 的; Application.DoEvents();
多额外的测试,(试图执行相同的操作)无法重现该问题。
有什么建议? 谢谢。
编辑:这是禁忌,试图得到答案的一个问题特别是约的DoEvents? 我是比较新的StackOverflow的,我只是有点搞不清楚为什么我已经得到了两轮投票。
我已经看到了这个问题问了很多次其他线程,和(我的眼睛至少,几乎普遍反应只是 - 不要使用application.DoEvents())。 我特别想在我原来的问题体贴,并解释为什么我们在这种情况下使用它。 同时,我特别想避免的,为什么不应该使用的DoEvents另一个讨论。 如果有足够多的人认为有些东西是一个坏主意,它只是忌讳讨论的计算器? 同样,我是比较新的这个论坛,并试图在这里了解在作怪礼仪。 谢谢。