【问题标题】:Number of handlers run from event从事件运行的处理程序数量
【发布时间】:2015-10-23 22:03:12
【问题描述】:

在处理表单时,是否可以通过所选事件进入 C# 中运行(或等待队列)的处理程序数量? 例如:我有很多条,它们可以调整大小......所以如果我调整 4 的大小,那么事件会运行 4 次。当我调整多个条的大小时,我需要得到最后一个...

如果队列中的事件数为 0,我想检查 barResizeHandler,然后我可以执行选择的操作。

【问题讨论】:

  • 有什么问题?我记得,所有 UI 操作都在同一个线程中运行,因此在最后一次调整大小结束之前,您无法调整元素的大小。因此,每次调整大小都是最后一次。
  • 嗯。可惜了……
  • 你真正的问题是什么?表现不佳? 4 调整大小这么慢吗?
  • 调整大小后,我重新加载了数据。我宁愿在调整大小时使用它一次。糟糕,您可以一次调整 4 个大小..

标签: c# winforms events queue handler


【解决方案1】:

调整大小后不要加载数据。为您的数据创建 Cashe,并在调整大小后从中获取数据。 例如,

... YourDataType[] _cashe = TakeDataFromSource(); // SaveDataToCashe ... public void OnResize(object sender, EventArgs e) { ShowDataInTheBars(_cashe); // Show data from the cashe }

【讨论】:

  • 你能把所有数据都加载到cashe吗?如果否,请不要在调整大小后重新加载所有数据。加载之前未加载的数据。而且,你真正的问题是什么?显示加载数据的代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-02
  • 1970-01-01
  • 2016-03-22
相关资源
最近更新 更多