多线程编程全面解析:从基础到高级应用
1. 并行迭代执行
在多线程编程中,并行迭代执行是提高效率的重要手段。例如,在对文件集合中的每个文件进行加密操作时,可以使用并行方式,让 API 根据“爬山”算法动态确定最有效的线程数量,该算法会不断创建新线程,直到新增线程的开销开始降低整体性能,此时便确定了最有效的线程数。并行度对应着在任何特定时间同时运行的线程数量。
1.1 并行异常处理
在并行执行查询时,每个迭代都可能抛出异常。当循环执行过程中抛出异常时,异常类型通常是System.AggregateException,它可以包含多个内部异常。这样,我们可以使用一个try/catch块来处理循环内的所有异常。以下是一个示例代码:
using System; using System.Collections.Generic; using System.IO; class Program { static void EncryptFiles( string directoryPath, string searchPattern) { IEnumerable<string> files = Directory.GetFiles( directoryPath, searchPattern, SearchOption.AllDirectories); try { Parall