public void EjecutaHilo() { using (System.IO.Stream fileStream = new FileStream(@"C:\SimulacionesRentas\" + ArchivoSalida, FileMode.Create), bs = new BufferedStream(fileStream)) { Console.WriteLine(ArchivoSalida + " INI"); using (var file = new BinaryWriter(bs)) { for (int s = 0; s < (NumeroDeSimulaciones); s++) { simulacion.EjecutaSimulación(file, TA, NumeroDeRentas, CostoDistribuidor, periodosDelPlazo, TazaFalloEquipo, TazaCancelación, TazaNoPago); MeanIngresosTotales += simulacion.Result.IngresosTotales; MeanCostosFallasEquipo += simulacion.Result.CostosFallasEquipo; MeanFallasTotales += simulacion.Result.FallasTotales; MeanCancelaciones += simulacion.Result.CuantasCancelaciones; MeanNoPagos += simulacion.Result.CuantosNoPagos; } } Console.WriteLine(ArchivoSalida + " FIN"); } RentasData datos = new RentasData(); byte[] arrBytes; using (System.IO.Stream fileStream = new FileStream(@"C:\SimulacionesRentas\" + ArchivoSalida, FileMode.Open), bs = new BufferedStream(fileStream)) { using (var file = new BinaryReader(bs)) { for (int i = 0; i < 5; i++) { Int32 size = file.ReadInt32(); arrBytes = file.ReadBytes(size); datos.Deserialize(ref arrBytes); datos.PrintConsole(ArchivoSalida); } } } }
public void EjecutaSimulación(BinaryWriter file, TablaAmortización TA, int NumeroDeRentas, double costoDistribuidor, int periodosDelPlazo, double TazaFalloEquipo, double TazaCancelación, double TazaNoPago) { int CuantasFallas = 0; int CuantasCancelaciones = 0; int CuantosNoPagos = 0; double CostoInicialEquipo = 0; double CostosFallasEquipo = 0; double IngresosTotales = 0; Renta renta = new Renta(); Random rand = new Random(); CostoInicialEquipo = costoDistribuidor; RentasData datos = new RentasData(); for (int i = 0; i < NumeroDeRentas; i++) { renta.SimulaRenta(periodosDelPlazo, TazaFalloEquipo, TazaCancelación, TazaNoPago, rand); datos.PagoPeriodico = TA.PagoPeriodico(); datos.CostoInicialEquipo = CostoInicialEquipo; datos.FalloEquipo = renta._FalloEquipo; datos.CancelaciónContrato = renta._CancelaciónContrato; datos.PeriodoCancelación = renta._PeriodoCancelación; datos.NoPago = renta._NoPago; datos.PeriodoNoPago = renta._PeriodoNoPago; datos.Plazos = periodosDelPlazo; if (renta._FalloEquipo) { CuantasFallas++; } double PagoTotal = 0; if (renta._CancelaciónContrato) { CuantasCancelaciones++; PagoTotal = renta._PeriodoCancelación * TA.PagoPeriodico(); IngresosTotales += PagoTotal; datos.PagoTotal = PagoTotal; //Console.WriteLine(PagoTotal); } else { if (renta._NoPago) { CuantosNoPagos++; PagoTotal = (renta._PeriodoNoPago - 1) * TA.PagoPeriodico(); IngresosTotales += PagoTotal; datos.PagoTotal = PagoTotal; //Console.WriteLine(PagoTotal); } else { PagoTotal = periodosDelPlazo * TA.PagoPeriodico(); IngresosTotales += PagoTotal; datos.PagoTotal = PagoTotal; //Console.WriteLine(PagoTotal); } } byte[] byteArr = datos.Serialize(); Int32 sizeOfarrByte = byteArr.Length; file.Write(sizeOfarrByte); file.Write(byteArr); } CostosFallasEquipo = CuantasFallas * costoDistribuidor; Result.PagoMensual = TA.PagoPeriodico(); Result.CostoInicialEquipo = costoDistribuidor * NumeroDeRentas; Result.IngresosTotales = IngresosTotales; Result.CostosFallasEquipo = CostosFallasEquipo; Result.FallasTotales = CuantasFallas; Result.CuantasCancelaciones = CuantasCancelaciones; Result.CuantosNoPagos = CuantosNoPagos; }