// 생산 public int ProductionMachine() { try { Service service = new Service(); MessageEventArgs me = new MessageEventArgs(); string msg = string.Empty; // currentQty = 현재투입량, RequestQty = 요청수량 for (int currentQty = 0; currentQty < RequestQty; currentQty++) { iTotalCnt++; bool IsSuccess = IsSuccessItem(); // true => 양품 false => 불량품 Thread.Sleep(new Random().Next(1300, 1720)); int itemQuality = 0; if (IsSuccess) { itemQuality = 1; } else { currentQty--; } iSuccess += itemQuality; iDefect = iTotalCnt - iSuccess; // 생산중( 생산실적아이디, 생산성공개수, 실패개수) service.Producing(PerformanceID, itemQuality, 1 - itemQuality); //생산중 - 모니터링 화면 // 라인아이디, 요청개수, 진행개수 ,성공개수, 실패개수 msg = string.Join(",", LineID, RequestQty, iTotalCnt, iSuccess, iDefect); me.Message = msg; if (MsgSender != null) { MsgSender.Invoke(this, me); } } // 생산 완료 ( 재고 감소 ) Thread.Sleep(3000); service.EndProduce(PerformanceID); // 생산 완료 - 모니터링 화면 // 라인아이디, 요청개수, 진행개수, 성공개수, 실패개수) -- 최종 return(iTotalCnt); } catch (Exception ex) { Program.Log.WriteError(ex.Message, ex); new Service().EndProduce(PerformanceID); Debug.WriteLine(ex.Message); Debug.WriteLine(ex); return(iTotalCnt); } }