[성현모] CPXV2 Init
This commit is contained in:
@ -0,0 +1,477 @@
|
||||
using DevExpress.Data.Helpers;
|
||||
using DevExpress.XtraBars;
|
||||
using DevExpress.XtraBars.Navigation;
|
||||
|
||||
using System;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using System.Xml.Linq;
|
||||
using System.IO;
|
||||
using System.Diagnostics;
|
||||
|
||||
using SystemX.Net;
|
||||
using SystemX.Common;
|
||||
using SystemX.Net.BaseProtocol;
|
||||
using SystemX.Net.Comm;
|
||||
using SystemX.Net.Schedule;
|
||||
using SystemX.Net.DB;
|
||||
using SystemX.Common.Serialization;
|
||||
using SystemX.Common.Archive;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
using SystemX.Common.Protocol.SIA;
|
||||
|
||||
using static SystemX.Net.Platform.Common.Util.LogMessage;
|
||||
using System.Threading;
|
||||
using SystemX.Net.Middleware.Commons;
|
||||
using SystemX.Net.Platform.SystemX.Common;
|
||||
using CpTesterPlatform.CpLogUtil;
|
||||
|
||||
namespace SystemX.Net.MiddlewareUI
|
||||
{
|
||||
public partial class MainForm : DevExpress.XtraBars.FluentDesignSystem.FluentDesignForm
|
||||
{
|
||||
private async void WatchRecvStreamQueue()
|
||||
{
|
||||
await Task.Delay(250);
|
||||
|
||||
Stopwatch stLogScanTimer = new Stopwatch();
|
||||
stLogScanTimer.Start();
|
||||
|
||||
while (!m_bTaskStreamBlock)
|
||||
{
|
||||
try
|
||||
{
|
||||
CT.ThrowIfCancellationRequested();
|
||||
}
|
||||
catch (OperationCanceledException CancelEx)
|
||||
{
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + @" Work Canceled. [SystemX.Net.MiddlewareUI : MainForm.WatchRecvStreamQueue]\r\n" + CancelEx.Message, ConsoleColor.Yellow, LogMessageLevel.DEBUG);
|
||||
|
||||
break;
|
||||
}
|
||||
//
|
||||
try
|
||||
{
|
||||
if (bTaskStreamWaitLock == false) QueryRecvStreamQueue();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + @"General Queue Process failed.[SystemX.Net.MiddlewareUI : MainForm.WatchRecvStreamQueue]\r\n" + e.Message, ConsoleColor.Yellow, LogMessageLevel.DEBUG);
|
||||
}
|
||||
|
||||
await Task.Delay(10);
|
||||
}
|
||||
|
||||
//return m_bTaskStreamBlock;
|
||||
}
|
||||
//private async void SendStreamEvent(byte[] senderData, ScheduleEvent e)
|
||||
private void SendStreamEvent(byte[] senderData, ScheduleEvent e)
|
||||
{
|
||||
try
|
||||
{
|
||||
int iGetCall = e.CALL_NUMBER;
|
||||
|
||||
if (thisConnInfo[e.CALL_NUMBER].m_ucSendStreamToken == 0x00)
|
||||
thisConnInfo[e.CALL_NUMBER].m_ucSendStreamToken = 0x01;
|
||||
else if (thisConnInfo[e.CALL_NUMBER].m_ucSendStreamToken == 0x01)
|
||||
thisConnInfo[e.CALL_NUMBER].m_ucSendStreamToken = 0x02;
|
||||
else
|
||||
thisConnInfo[e.CALL_NUMBER].m_ucSendStreamToken = 0x01;
|
||||
|
||||
thisConnInfo[e.CALL_NUMBER].m_iSendStreamCnt++;
|
||||
|
||||
if (thisConnInfo[e.CALL_NUMBER].m_iSendStreamCnt + 1 == int.MaxValue)
|
||||
thisConnInfo[e.CALL_NUMBER].m_iSendStreamCnt = 0;
|
||||
|
||||
if (FlowStreamControl[iGetCall] == null)
|
||||
return;
|
||||
|
||||
//소켓 샌드 행위 내부 결과
|
||||
if (e.PROCESS_RESULT == false)
|
||||
{
|
||||
//해당 패킷 횟수 상승 일단 회 차시 기록남기고 드랍
|
||||
FlowStreamControl[iGetCall].SendPacketCycle();
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + @"General <SendStreamEvent> failed.[SystemX.Net.MiddlewareUI : MainForm.SendStreamEvent]\r\n" + ex.Message, ConsoleColor.Yellow, LogMessageLevel.DEBUG);
|
||||
}
|
||||
}
|
||||
//private async void RecvStreamEvent(byte[] senderData, ScheduleEvent e)
|
||||
private void RecvStreamEvent(byte[] senderData, ScheduleEvent e)
|
||||
{
|
||||
try
|
||||
{
|
||||
int iGetCall = e.CALL_NUMBER;
|
||||
|
||||
if (thisConnInfo[e.CALL_NUMBER].m_ucRecvStreamToken == 0x00)
|
||||
thisConnInfo[e.CALL_NUMBER].m_ucRecvStreamToken = 0x01;
|
||||
else if (thisConnInfo[e.CALL_NUMBER].m_ucRecvStreamToken == 0x01)
|
||||
thisConnInfo[e.CALL_NUMBER].m_ucRecvStreamToken = 0x02;
|
||||
else
|
||||
thisConnInfo[e.CALL_NUMBER].m_ucRecvStreamToken = 0x01;
|
||||
|
||||
thisConnInfo[e.CALL_NUMBER].m_iRecvStreamCnt++;
|
||||
|
||||
if (thisConnInfo[e.CALL_NUMBER].m_iRecvStreamCnt + 1 == int.MaxValue)
|
||||
thisConnInfo[e.CALL_NUMBER].m_iRecvStreamCnt = 0;
|
||||
|
||||
if (FlowStreamControl[iGetCall] == null)
|
||||
return;
|
||||
|
||||
int iStoreCnt = senderData.Count();
|
||||
byte[] recvStoreBuffer = senderData;
|
||||
|
||||
//소켓 리시브 행위 결과 전송
|
||||
if (e.PROCESS_RESULT == false)
|
||||
{
|
||||
//받기 실패 단순 실패 응답
|
||||
FlowStreamControl[iGetCall].InsertSendQueue(DateTime.Now, XCommons.SetSimpleResponsPacket(new BASE_PROTOCOL(BASE_PROTOCOL.PROTOCOL_CODE.SIMPLE_RESPONSE), false), null, false, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
BASE_PROTOCOL GET_PROTOCOL = XCommons.GetHeaderProtocol(iStoreCnt, recvStoreBuffer);
|
||||
BASE_PROTOCOL.PROTOCOL_CODE GET_CODE = GET_PROTOCOL.GET_CURRENT_PROTOCOL;
|
||||
|
||||
//응답
|
||||
if (GET_CODE == BASE_PROTOCOL.PROTOCOL_CODE.SIMPLE_RESPONSE)
|
||||
{
|
||||
if (XCommons.GetSimpleResponsResult(iStoreCnt, recvStoreBuffer))
|
||||
FlowStreamControl[iGetCall].SetSendPacketDrop();
|
||||
else
|
||||
FlowStreamControl[iGetCall].SendPacketCycle();
|
||||
}
|
||||
//파일 끝 응답
|
||||
else if (GET_CODE == BASE_PROTOCOL.PROTOCOL_CODE.RAW_END)
|
||||
{
|
||||
if (XCommons.GetSimpleResponsResult(iStoreCnt, recvStoreBuffer))
|
||||
FlowStreamControl[iGetCall].RawStoreQueuePOP();
|
||||
else
|
||||
FlowStreamControl[iGetCall].RawStoreQueuePOP();
|
||||
}
|
||||
//일반 응답
|
||||
else
|
||||
{
|
||||
//성공 응답
|
||||
FlowStreamControl[iGetCall].InsertSendQueue(DateTime.Now, XCommons.SetSimpleResponsPacket(new BASE_PROTOCOL(BASE_PROTOCOL.PROTOCOL_CODE.SIMPLE_RESPONSE), true), null, false, false);
|
||||
|
||||
//받은 큐에 넣어놓기
|
||||
FlowStreamControl[iGetCall].InsertRecvQueue(senderData, null, e.nLABEL);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + @"General <RecvStreamEvent> failed.[SystemX.Net.MiddlewareUI : MainForm.RecvStreamEvent]\r\n" + ex.Message, ConsoleColor.Yellow, LogMessageLevel.DEBUG);
|
||||
}
|
||||
}
|
||||
private void SendMiddlewareMessage(int iPos, string strMessage)
|
||||
{
|
||||
if (thisConnInfo[iPos].StreamConnectState == false)
|
||||
return;
|
||||
|
||||
try
|
||||
{
|
||||
MESSAGE_PACKET MakeMessagePacket = new MESSAGE_PACKET();
|
||||
int iSendSize = Marshal.SizeOf(MakeMessagePacket);
|
||||
byte[] ucSendArray = new byte[iSendSize];
|
||||
MakeMessagePacket = (MESSAGE_PACKET)SystemXNetSerialization.RawDeSerialize(ucSendArray, MakeMessagePacket.GetType());
|
||||
|
||||
MakeMessagePacket.objMessage[0].Data = strMessage;
|
||||
|
||||
byte[] ucSendByteInfo = XCommons.SpecialObjectToByteStream(new BASE_PROTOCOL(BASE_PROTOCOL.PROTOCOL_CODE.MIDDLEWARE_MESSAGE), MakeMessagePacket);
|
||||
|
||||
FlowStreamControl[iPos].InsertSendQueue(DateTime.Now, ucSendByteInfo, null);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") +
|
||||
@"Send error <Middleware> message.[SystemX.Net.MiddlewareUI : MainForm.SendMiddlewareMessage]\r\n" +
|
||||
ex.Message, ConsoleColor.Yellow, LogMessageLevel.DEBUG);
|
||||
}
|
||||
}
|
||||
|
||||
private byte[] MakeTransferResult(bool bSetRecvResult, bool bSetProcessResult)
|
||||
{
|
||||
TRANSFER_PACKET TransferResult = new TRANSFER_PACKET();
|
||||
int iSendSize = Marshal.SizeOf(TransferResult);
|
||||
byte[] ucSendArray = new byte[iSendSize];
|
||||
TransferResult = (TRANSFER_PACKET)SystemXNetSerialization.RawDeSerialize(ucSendArray, TransferResult.GetType());
|
||||
|
||||
TransferResult.bRecvResult = bSetRecvResult;
|
||||
TransferResult.bProcessResult = bSetProcessResult;
|
||||
|
||||
byte[] ucSendByteInfo = XCommons.SpecialObjectToByteStream(new BASE_PROTOCOL(BASE_PROTOCOL.PROTOCOL_CODE.TRANSFER_RESULT), TransferResult);
|
||||
|
||||
return ucSendByteInfo;
|
||||
}
|
||||
|
||||
private bool QueryRecvStreamProcess(int iFlowPos, string strProcessInfo)
|
||||
{
|
||||
int i = iFlowPos;
|
||||
|
||||
bool bState = true;
|
||||
//
|
||||
XData getXData = FlowStreamControl[i].GetResultPacketData();
|
||||
|
||||
if (getXData == null)
|
||||
return false;
|
||||
|
||||
try
|
||||
{
|
||||
thisConnInfo[i].stStreamProcessTime.Restart();
|
||||
|
||||
BASE_PROTOCOL GET_PROTOCOL = getXData.BaseProtocol;
|
||||
BASE_PROTOCOL.PROTOCOL_CODE CODE = GET_PROTOCOL.GET_CURRENT_PROTOCOL;
|
||||
|
||||
HEADER_PACKET getHeader = getXData.HeaderPacket;
|
||||
object objData = getXData.objData;
|
||||
|
||||
byte ucGetLabel = getXData.nLabel;
|
||||
|
||||
switch (CODE)
|
||||
{
|
||||
case BASE_PROTOCOL.PROTOCOL_CODE.CONNECT_STATE:
|
||||
{
|
||||
PING_PACKET GetPingPacket = (PING_PACKET)objData;
|
||||
|
||||
string strGetMsg = GetPingPacket.objCheckMsg[0].Data;
|
||||
|
||||
PING_PACKET PingPacketMake = new PING_PACKET();
|
||||
int iSendSize = Marshal.SizeOf(PingPacketMake);
|
||||
byte[] ucSendArray = new byte[iSendSize];
|
||||
PingPacketMake = (PING_PACKET)SystemXNetSerialization.RawDeSerialize(ucSendArray, PingPacketMake.GetType());
|
||||
|
||||
PingPacketMake.objCheckMsg[0].Data = "SystemX";
|
||||
|
||||
byte[] ucSendByteInfo = XCommons.SpecialObjectToByteStream(new BASE_PROTOCOL(BASE_PROTOCOL.PROTOCOL_CODE.CONNECT_STATE), PingPacketMake);
|
||||
|
||||
if (ServerStreamSock[i].CLIENT_CONNECT)
|
||||
{
|
||||
if (ucSendByteInfo != null)
|
||||
FlowStreamControl[i].InsertSendQueue(DateTime.Now, ucSendByteInfo, null, ucGetLabel);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case BASE_PROTOCOL.PROTOCOL_CODE.SYNC_TIME_SERVER:
|
||||
{
|
||||
TIME_PACKET GetTimePacket = (TIME_PACKET)objData;
|
||||
string strGetMsg = GetTimePacket.objMsg[0].Data;
|
||||
|
||||
TIME_PACKET timePacketMake = new TIME_PACKET();
|
||||
int iSendSize = Marshal.SizeOf(timePacketMake);
|
||||
byte[] ucSendArray = new byte[iSendSize];
|
||||
timePacketMake = (TIME_PACKET)SystemXNetSerialization.RawDeSerialize(ucSendArray, timePacketMake.GetType());
|
||||
|
||||
TimeControl.GetSyncTime(ref timePacketMake.objTime[0]);
|
||||
|
||||
timePacketMake.objMsg[0].Data = "SyncTimeSend";
|
||||
|
||||
byte[] ucSendByteInfo = XCommons.SpecialObjectToByteStream(new BASE_PROTOCOL(BASE_PROTOCOL.PROTOCOL_CODE.SYNC_TIME_SERVER), timePacketMake);
|
||||
|
||||
if (ServerStreamSock[i].CLIENT_CONNECT)
|
||||
{
|
||||
if (ucSendByteInfo != null)
|
||||
FlowStreamControl[i].InsertSendQueue(DateTime.Now, ucSendByteInfo, null, ucGetLabel);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case BASE_PROTOCOL.PROTOCOL_CODE.FILE_TRANSFER:
|
||||
{
|
||||
string strFileExtension = getHeader.objOptionExtension[0].Data;
|
||||
|
||||
bool bGetResult = false;
|
||||
|
||||
if (strFileExtension.IndexOf(".CpLog") >= 0 ||
|
||||
strFileExtension.IndexOf(".csv") >= 0)
|
||||
{
|
||||
//if (bUseMapLogProcess)
|
||||
MappedLogQueueData.Enqueue(new Tuple<string, int, HEADER_PACKET, byte[]>("FILE_TRANSFER", i, getHeader, objData as byte[]));
|
||||
|
||||
bGetResult = true;
|
||||
}
|
||||
|
||||
FlowStreamControl[i].InsertSendQueue(DateTime.Now, MakeTransferResult(true, bGetResult), null, PacketFlowControl.TransferResultToken, false);
|
||||
}
|
||||
break;
|
||||
case BASE_PROTOCOL.PROTOCOL_CODE.RAW_SIZE:
|
||||
{
|
||||
if (getHeader.uiSourDataNum > 1)
|
||||
{
|
||||
if (thisConnInfo[i].nFileRecvPos > 0)
|
||||
{
|
||||
if ((thisConnInfo[i].nFileRecvPos + 1) != getHeader.uiSourDataNum ||
|
||||
thisConnInfo[i].nFileRecvEndPos == 0)
|
||||
{
|
||||
thisConnInfo[i].nFileRecvPos = 0;
|
||||
thisConnInfo[i].nFileRecvEndPos = 0;
|
||||
|
||||
FlowStreamControl[i].InsertSendQueue(DateTime.Now, XCommons.SetSimpleResponsPacket(new BASE_PROTOCOL(BASE_PROTOCOL.PROTOCOL_CODE.RAW_END), false), null, false, false);
|
||||
|
||||
FlowStreamControl[i].InsertSendQueue(DateTime.Now, MakeTransferResult(false, false), null, PacketFlowControl.TransferResultToken, false);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
//
|
||||
if (getHeader.uiSourDataNum == 1)
|
||||
{
|
||||
thisConnInfo[i].lstRecvFileBytes = new List<Tuple<int, byte[]>>();
|
||||
thisConnInfo[i].lstRecvFileBytes.Clear();
|
||||
|
||||
thisConnInfo[i].lstRecvFileBytes.Add(new Tuple<int, byte[]>((int)getHeader.uiSourDataNum, objData as byte[]));
|
||||
|
||||
thisConnInfo[i].nFileRecvPos = (int)getHeader.uiSourDataNum;
|
||||
thisConnInfo[i].nFileRecvEndPos = (int)getHeader.uiDestDataNum;
|
||||
|
||||
thisConnInfo[i].strRecvFileName = getHeader.objOptionName[0].Data;
|
||||
thisConnInfo[i].strRecvFileExtension = getHeader.objOptionExtension[0].Data;
|
||||
}
|
||||
else
|
||||
{
|
||||
thisConnInfo[i].lstRecvFileBytes.Add(new Tuple<int, byte[]>((int)getHeader.uiSourDataNum, objData as byte[]));
|
||||
|
||||
thisConnInfo[i].nFileRecvPos++;
|
||||
}
|
||||
//
|
||||
if (thisConnInfo[i].nFileRecvPos >= thisConnInfo[i].nFileRecvEndPos)
|
||||
{
|
||||
int iSize = 0;
|
||||
|
||||
thisConnInfo[i].lstRecvFileBytes.Sort();
|
||||
|
||||
foreach (Tuple<int, byte[]> tData in thisConnInfo[i].lstRecvFileBytes)
|
||||
iSize += tData.Item2.Count();
|
||||
|
||||
byte[] ucGetDatas = new byte[iSize];
|
||||
int iCopyPos = 0;
|
||||
|
||||
foreach (Tuple<int, byte[]> tData in thisConnInfo[i].lstRecvFileBytes)
|
||||
{
|
||||
Array.Copy(tData.Item2, 0, ucGetDatas, iCopyPos, tData.Item2.Count());
|
||||
|
||||
iCopyPos += tData.Item2.Count();
|
||||
}
|
||||
|
||||
bool bGetResult = false;
|
||||
|
||||
if (thisConnInfo[i].strRecvFileExtension.IndexOf(".CpLog") >= 0 ||
|
||||
thisConnInfo[i].strRecvFileExtension.IndexOf(".csv") >= 0)
|
||||
{
|
||||
//if (bUseMapLogProcess)
|
||||
MappedLogQueueData.Enqueue(new Tuple<string, int, HEADER_PACKET, byte[]>("RAW_SIZE", i, getHeader, objData as byte[]));
|
||||
|
||||
bGetResult = true;
|
||||
}
|
||||
|
||||
thisConnInfo[i].nFileRecvPos = 0;
|
||||
thisConnInfo[i].nFileRecvEndPos = 0;
|
||||
|
||||
FlowStreamControl[i].InsertSendQueue(DateTime.Now, XCommons.SetSimpleResponsPacket(new BASE_PROTOCOL(BASE_PROTOCOL.PROTOCOL_CODE.RAW_END), true), null, false, false);
|
||||
|
||||
FlowStreamControl[i].InsertSendQueue(DateTime.Now, MakeTransferResult(true, bGetResult), null, PacketFlowControl.TransferResultToken, false);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
thisConnInfo[i].lStreamTime = thisConnInfo[i].stStreamProcessTime.ElapsedMilliseconds;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + strProcessInfo + @" Recv queue stream process fail.[SystemX.Net.MiddlewareUI : MainForm.QueryRecvStreamQueue]\r\n" + e.Message, ConsoleColor.Yellow, LogMessageLevel.DEBUG);
|
||||
|
||||
bState = false;
|
||||
}
|
||||
|
||||
return bState;
|
||||
}
|
||||
|
||||
private bool QueryRecvStreamQueue()
|
||||
{
|
||||
//StackTrace st = new StackTrace(true);
|
||||
|
||||
bool bState = true;
|
||||
|
||||
try
|
||||
{
|
||||
bTaskStreamWaitLock = true;
|
||||
|
||||
for (int i = PORT_DISTRIBUTION_NUM; i < ALL_MANAGE_NUM && !m_bTaskStreamBlock; i++)
|
||||
{
|
||||
if (ServerStreamSock[i] == null)
|
||||
continue;
|
||||
//
|
||||
if (ServerStreamSock[i] != null)
|
||||
{
|
||||
if (ServerStreamSock[i].CLIENT_CONNECT == false)
|
||||
continue;
|
||||
}
|
||||
//
|
||||
if (FlowStreamControl[i] == null)
|
||||
continue;
|
||||
if (FlowStreamControl[i].GetCurrentRecvProcessData() != null)
|
||||
continue;
|
||||
//
|
||||
thisConnInfo[i].m_iSendStreamQueueSize = FlowStreamControl[i].GetSendQueueSize();
|
||||
thisConnInfo[i].m_iRecvStreamQueueSize = FlowStreamControl[i].GetRecvQueueSize();
|
||||
|
||||
if ((thisConnInfo[i].m_iSendStreamQueueSize + 1) == int.MaxValue)
|
||||
thisConnInfo[i].m_iSendStreamQueueSize = 0;
|
||||
if ((thisConnInfo[i].m_iRecvStreamQueueSize + 1) == int.MaxValue)
|
||||
thisConnInfo[i].m_iRecvStreamQueueSize = 0;
|
||||
//
|
||||
string strProcessDebugInfo = string.Empty;
|
||||
strProcessDebugInfo = "[" + (i).ToString("D2") + "]" +
|
||||
"[" + ConnPool[i].nUseStreamPort + "]" +
|
||||
"[" + thisConnInfo[i].strConnectHostID + "]" +
|
||||
"[" + thisConnInfo[i].strConnectSection + "]";
|
||||
|
||||
bState = QueryRecvStreamProcess(i, strProcessDebugInfo);
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
/*
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + CpLogProcessInfo.strProcessDebugInfo + @" CpLog - " + $"ST Frame Count {st.FrameCount} [SystemX.Net.MiddlewareUI : MainForm.SetMemoryMappedFile] " + e.Message, ConsoleColor.Red, LogMessageLevel.FATAL);
|
||||
|
||||
for (int n = 0; n < st.FrameCount; n++)
|
||||
{
|
||||
StackFrame sf = st.GetFrame(n);
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + CpLogProcessInfo.strProcessDebugInfo + @" CpLog - " + $"ST Method To String {sf.GetMethod()} [SystemX.Net.MiddlewareUI : MainForm.SetMemoryMappedFile] " + e.Message, ConsoleColor.Red, LogMessageLevel.FATAL);
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + CpLogProcessInfo.strProcessDebugInfo + @" CpLog - " + $"ST Method Name {sf.GetMethod().Name} [SystemX.Net.MiddlewareUI : MainForm.SetMemoryMappedFile] " + e.Message, ConsoleColor.Red, LogMessageLevel.FATAL);
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + CpLogProcessInfo.strProcessDebugInfo + @" CpLog - " + $"ST Line Number {sf.GetFileLineNumber()} [SystemX.Net.MiddlewareUI : MainForm.SetMemoryMappedFile] " + e.Message, ConsoleColor.Red, LogMessageLevel.FATAL);
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + CpLogProcessInfo.strProcessDebugInfo + @" CpLog - " + $"ST Column Number {sf.GetFileColumnNumber()} [SystemX.Net.MiddlewareUI : MainForm.SetMemoryMappedFile] " + e.Message, ConsoleColor.Red, LogMessageLevel.FATAL);
|
||||
}
|
||||
*/
|
||||
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + @" Recv queue stream process unknown fail.[SystemX.Net.MiddlewareUI : MainForm.QueryRecvStreamQueue]\r\n" + e.Message, ConsoleColor.Yellow, LogMessageLevel.DEBUG);
|
||||
|
||||
bState = false;
|
||||
}
|
||||
finally
|
||||
{
|
||||
bTaskStreamWaitLock = false;
|
||||
|
||||
nStreamNumber++;
|
||||
|
||||
if (nStreamNumber >= ALL_MANAGE_NUM)
|
||||
nStreamNumber = 0;
|
||||
}
|
||||
|
||||
return bState;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user