// See https://aka.ms/new-console-template for more information using System.Diagnostics; class Program { private static object _locer = new(); static void Main() { // 创建一个 Stopwatch 实例 Stopwatch stopwatch = new Stopwatch(); // 开始计时 stopwatch.Start(); // 定义要执行的inp文件路径 //string fileName = "easy.inp"; string fileName = "1843913603388936192.inp"; // Parallel.For(0, 5, i => RunEpanetSimulation(fileName, i)); //Console.WriteLine($"正在执行第 {number + 1} 次模拟,文件:{fileName}"); using (var helper = new Yw.Epanet.InteropXHelper()) { helper.Open(fileName, "", ""); helper.OpenH(); for (int i = 0; i < 20000; i++) { helper.SetNodeValue(1, Yw.Epanet.eNodeProperty.Demand, 0); helper.InitH(false); helper.RunH(out long t); helper.NextH(out long tstep); //Console.WriteLine($"正在执行第 {number + 1} 次模拟,文件:{fileName}+{i}"); Console.WriteLine(i); } helper.CloseH(); helper.Close(); } Console.WriteLine("所有模拟已完成。"); // 停止计时 stopwatch.Stop(); Console.WriteLine($"总时间:{stopwatch.Elapsed.TotalSeconds}"); Console.ReadLine(); } static void RunEpanetSimulation(string fileName, int number) { Console.WriteLine($"正在执行第 {number + 1} 次模拟,文件:{fileName}"); using (var helper = new Yw.Epanet.InteropXHelper()) { helper.Open(fileName, "", ""); helper.OpenH(); for (int i = 0; i < 4000; i++) { helper.SetNodeValue(1, Yw.Epanet.eNodeProperty.Demand, 0); helper.InitH(false); helper.RunH(out long t); helper.NextH(out long tstep); Console.WriteLine($"正在执行第 {number + 1} 次模拟,文件:{fileName}+{i}"); } helper.CloseH(); helper.Close(); } } }