Console application to search for files that contain a match for a regex
private static void SearchDirectory(string path)



This method does not need to be recursive. You could use the Directory.EnumerateFiles method


Directory.EnumerateFiles Method (String, String, SearchOption)



where


  One of the (SearchOption) enumeration values that specifies whether the search operation should include only the current directory or should include all subdirectories.


I don't know how your regex looks like but for simple pattern with wildcards you can use the second parameter 


  The search string to match against the names of files in path. This parameter can contain a combination of valid literal path and wildcard (* and ?) characters (see Remarks), but doesn't support regular expressions.




As far as the multithreading is concered you should definitely use the new TPL (Parallel.ForEach) instead of creating your own threads.