我有一個UserControl。我可以移動一個酒吧。當移動時發生持續事件時移動條凍結
每當酒吧被移動時,一個事件正在發射。當我沒有訂閱任何事件一切都很好。當我移動酒吧時,酒吧被畫在正確的位置。
但是,當我訂閱的東西,控制的塗料方法似乎太慢。我的酒吧不動,但我的事件正在發射。當你停止移動欄杆時,它會再次被繪製在正確的位置。
我該如何解決這個凍結問題?只有在平局之後纔開火?我試圖在OnPaint方法結束時調用事件,但這並沒有解決問題。
protected override void OnPaint(PaintEventArgs e)
{
Bitmap btm = new Bitmap(_drawRectangle.Width, _drawRectangle.Height);
using (Graphics gfx = Graphics.FromImage(btm))
{
... //draw bar, etc.
}
this.drawbox.Image = btm;
base.OnPaint(e);
//if (PositionChanged != null) PositionChanged(...);
}
當事件不是一舉一動時,這不是問題。它也可以是酒吧的每一個新的繪製。
您應該調查事件處理程序中的哪個操作導致放緩。那裏有什麼?如果您每x毫秒執行一次該操作,而不是每次移動事件被觸發時,都可以嗎? – Marton