• 执行完毕再往下执行?


    执行完毕再往下执行?

    左直拳

    我写了一段代码,如下:

    Busy();

    //进行大工作量,耗时的操作

    BigSetup();

    Free();

    其中,函数Busy()的作用是将鼠标光标设为代表等待的沙漏形状,并且显示一幅忙碌的图片,而函数Free()则正好相反,将光标设回默认的箭头状,并显示清闲的图片:

                  private void Busy()

                  {

                         imgEpass.Image = mImgBusy;

                         this.Cursor = Cursors.WaitCursor;

                  }

     

                  private void Free()

                  {

                         imgEpass.Image = mImgFree;

                         this.Cursor = Cursors.Default;

                  }

    可是,运行的结果与预期有很大落差:图片没有改变,或者说,没有单方面改变现状。

    怎会这样。难道系统没等Busy()这个函数执行完,就呼啦啦(大长今?)地一直往前冲?

    查帮助,上网搜索,同步、异步、线程、阻塞、……,铺天盖地,头昏脑胀,乱七八糟,却一无所获。我还想到了用Sleep(),死未。

    观察程序运行,鼠标的光标确实改变了,而改变鼠标形状的语句放在改变图片之后,也就是说,图片也应该改变了,只是未反映出来。可能是没重绘吧。

    修改了一下Busy()Free()

                  private void Busy()

                  {

                         imgEpass.Image = mImgBusy;

                         imgEpass.Refresh();

                         this.Cursor = Cursors.WaitCursor;

                  }

     

                  private void Free()

                  {

                         imgEpass.Image = mImgFree;

                         imgEpass.Refresh();

                         this.Cursor = Cursors.Default;

                  }

    终于得到了我想要的。

  • 相关阅读:
    弹丸类以及魂类的构想
    LaunchCharacter
    如何让Ue4画面产生振动效果
    解决Ue4C++使用UMG之类的模块时出现的拼写错误
    我认为我可以去尝试做一下Maya Ue4导出插件
    Wiki上的Ue4文件结构以及命名规范
    如何在修改了默认值之后跟新
    Ue4 BatteryCollector 教程笔记
    Ue4的GitHUB版本版本管理探索
    FString的相关文档,另外还有4种LOG的方法
  • 原文地址:https://www.cnblogs.com/leftfist/p/4258369.html
Copyright © 2020-2023  润新知