무시하기 (비동기 서버의 경우)
Control.CheckForIllegalCrossThreadCalls = false;
단순처리
this.Invoke(new MethodInvoker(delegate()
{
//내용 작성
}));
정식처리
#region " PC 스캐너 데이터 수신 이벤트 "
private void SP_PC_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
try
{
Thread.Sleep(100);
string R_Data = SP_PC.ReadExisting().Trim();
SetText(R_Data);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
#endregion
#region "스캐너로 받은 데이터 처리"
private void SetText(string text)
{
if (this.Send_lbl.InvokeRequired)
{
SetTextCallback d = new SetTextCallback(Input_Data_Send);
this.Invoke(d, new object[] { text });
}
}
#endregion
#region "스캔 받은 데이터의 DB내에 유무 확인 후 다음 이벤트로 진행"
private void Input_Data_Send(string sScanData)
{
//내용 작성
}