0

我正在尝试验证一些文本文件。在前端我使用 JTextarea,每次用户输入“Enter”键时都会调用以下方法。如果文件太大,比如 5000 行,如果用户多次输入“Enter”键,我会得到意想不到的结果,即使该行有效,它也会显示为无效。

睡眠有什么关系,我应该增加睡眠时间还是必须做其他事情?任何想法都会有所帮助

private TreeSet validate(int curLine, TreeSet errorSet) {
    int increment = 0;
    int nextLine = 0;

    if (curLine == lines.length || errorSet.size() != 0) {
        return errorSet;
    } else {
        String line = lines[curLine];

        //validation starts.  After validation, line is incremented as per the requirements

         increment = 1 //As per requirement. Depends on validation results of the line



        if (increment > 0) {
            try{
                 Thread.currentThread().sleep(100);  
               }catch(Exception ex){
                 System.out.println(ex); 
               }
            nextLine = (curLine + increment);
            validate(nextLine, errorSet);
        }
    }
    return errorSet;
}  
4

1 回答 1

1

我不会考虑让睡眠时间更长/更短。相反,我会考虑在编组触发器以进行验证方面做得更好。是否有任何理由允许在验证请求进行时输入验证请求?如果没有,我会考虑在当前进程仍未完成时阻止验证调用。

如果您认为应该能够同时进行多个验证,那么我会考虑为这些操作创建一个线程池。测试我确定有多少线程可以同时运行,从而确定你的线程池的大小。此时,系统内存可能也很重要,因此您可能还想在测试时查看这些统计信息。

于 2012-07-29T07:31:27.747 回答