【问题标题】:Prevent running sub routines twice for improve performance?防止两次运行子例程以提高性能?
【发布时间】:2016-07-26 14:59:52
【问题描述】:

我有一个执行文件搜索并在 datagridview 中显示结果的 winform。我也有显示文件的图片框。过程:输入文件名并点击搜索,结果以网格形式显示,图片在图片框中显示。

我希望能够再次单击搜索,但这次如果它是同一个文件,我不想运行我的图片进程,因此会产生更好的性能。不确定如何实现这一目标?

【问题讨论】:

  • 在没有代码的情况下,我们如何告诉您如何修复/优化您的代码?

标签: .net vb.net winforms performance file-search


【解决方案1】:

您可以使用静态变量并在每次调用该方法时对其进行设置/检查:

Public Sub SearchForFile(filename As String)
    Static lastFile As String = Nothing
    Try
        'don't run again if the same file is searched for
        If lastFile = filename Then Return

        'do your file searching here
    Finally
        'always set the last filename to the one we just searched for
        lastFile = filename
    End Try
End Sub

【讨论】:

  • 再次搜索同一个文件后挂断,并没有结束 end try 循环。
  • 我发布的代码中没有循环,所以我猜你的代码中没有return
  • 挂断是什么意思?它只能挂在循环中,所以不能挂在简单的代码行上。
  • 我能否在文本框更改事件中将 lastFile 设置为空,因此如果我再次搜索相同的文件名 lastFile 仍会再次运行图片处理?
  • 应该可以。您可能还想声明它Shared
猜你喜欢
  • 2013-07-17
  • 1970-01-01
  • 1970-01-01
  • 2014-05-31
  • 2018-04-26
  • 1970-01-01
  • 2014-02-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多