提高代码效率

时间:2017-09-30 18:40:59

标签: c# .net

我对我的项目做了一些分析,并追踪了一个绘图功能,使用了80%的项目处理时间。由于它如此重要,我觉得我做的任何改进都会对我的表现产生很大的影响。这个功能大约需要25毫秒才能完成,大概是40 fps,我希望它能达到60帧。

private void pic2OnPaint(object sender, PaintEventArgs e)
{
    try
    {
        Rectangle rect = Rect();

        e.Graphics.DrawImage(LatestScreenshot, new Point(-rect.Location.X, -rect.Location.Y));

        if (PaintLayers.Count > 0 | ChosenTool != Option.None) // So it does not attempt to draw a blank bitmap.
        {
            e.Graphics.DrawImage(PaintSurface, new Point(-rect.Location.X, -rect.Location.Y));
        }

        if (!Holding & !PanelDragHolding & !HandleDragHolding) // So it does not attempt to draw a blank bitmap.
        {
            e.Graphics.DrawImage(invisibleLayer, new Point(-rect.Location.X, -rect.Location.Y));
        }       
    }
    catch { }
}

我非常感谢任何提示。

每帧调用一次。 LatestScreenshot位图不会改变。 Paintsurface每帧都会改变。我把它放在try catch中只是因为我错误的唯一一次是我初始化项目所以LatestScreenshot在第一次被调用时为null。除了那个之外我没有任何错误。

0 个答案:

没有答案