1
Quartz .NET 작업을 사용하여 직렬 포트에서 데이터를 주기적으로 가져옵니다. 문제는 다른 프로그램에서 직렬 포트를 사용하는 경우 작업이 30 분 안에 다시 시도해야한다는 것입니다. 어떻게해야합니까?Quartz .Net 작업 자체를 다시 예약해야합니다
public virtual void Execute(JobExecutionContext context)
{
SetYModemEvents();
JobDataMap data = context.JobDetail.JobDataMap;
string COM = data.GetString("COM");
string BAUD = data.GetString("BAUD");
string name = data.GetString("NAME");
_yModem.AllowDisconnect = true;
_connection.Port.PortName = COM;
try
{
_connection.Port.BaudRate = int.Parse(BAUD);
}catch(FormatException)
{
_connection.Port.BaudRate = 9600;
}
try
{
_connection.Port.Open();
}catch(UnauthorizedAccessException ex)
{
//Reschedule this job
}
_connection.Port.DataReceived += new SerialDataReceivedEventHandler(DataReceviedHandler);
DeadManSwitch.Tick += new EventHandler(DeadManSwitch_Tick);
DeadManSwitch.Start();
if(Properties.Settings.Default.UseBubbels)
{
ReadOutHelperClass.ShowNotifiy(name, mynotifyicon);
}
//Starten der Auslesung
_connection.Write(protocoll.ReadLoggerData(), 0, protocoll.ReadLoggerData().Length);
DeadManSwitch.Interval = DeadManTimeOut;
}
여기 내 솔루션을 작성했습니다. http://stackoverflow.com/a/42744559/1393052 –