【问题标题】:C# sometimes the first command running after the second commandC# 有时第一个命令在第二个命令之后运行
【发布时间】:2016-07-26 14:30:44
【问题描述】:

有时当我将一个可见的图片框设置为假(例如)或设置一些文本框的文本然后写“System.Threading.Thread.Sleep(X)”(例如)在执行之后执行的第一个命令睡眠命令。

怎么可能? 是否有一些命令在后台运行?

这让我很困惑。 它在我的项目中产生了很多错误。

【问题讨论】:

  • 贴出相关代码
  • 您使用的是线程还是后台工作者?
  • 您使 UI 线程进入睡眠状态,因此它不会刷新 UI!当它在X ms 之后唤醒时,它会刷新 UI,您会看到更改。
  • @dotctor 您假设其他任务未在 UI 线程上运行。 Thread.Sleep() 在同一个线程上应该阻塞操作直到时间过去
  • @Alec - 他肯定是这么认为的吧?

标签: c# .net command


【解决方案1】:

听起来您可能正在等待事件触发。试试这个:

pic.Visible = false;
Application.DoEvents();
sleep(1000);

https://msdn.microsoft.com/en-us/library/system.windows.forms.application.doevents%28v=vs.110%29.aspx

【讨论】:

  • 哇!完美...非常感谢! :D 好多了...快速回答!
猜你喜欢
  • 2018-07-17
  • 1970-01-01
  • 1970-01-01
  • 2011-06-10
  • 1970-01-01
  • 1970-01-01
  • 2010-12-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多