/// <summary> /// 根据命令选择计数器类型 /// </summary> /// <returns></returns> CounterTemplate _Factory() { string[] lines = FilesHelper.LoadCodeSource(_file); CounterTemplate counter = null; if (_file.EndsWith(".cpp") || _file.EndsWith(".c")) { counter = new CppCounter(lines); } return(counter); }
public void CountAndPrint(object threadContext) { try { int thIndex = (int)threadContext; Console.WriteLine("thread {0}: start...", thIndex); CounterTemplate counter = _Factory(); if (counter == null) { Console.WriteLine("Create counter failed!"); return; } counter.Count(); counter.Print(_file); Console.WriteLine("thread {0}: end...", thIndex); } catch (Exception e) { Console.WriteLine(e.Message); return; } }