2010-04-19 5 views
0

나는 블루투스 어댑터를 사용하여 학생들의 휴대 전화 블루투스를 검색하고 그들이 존재하는지 여부를 확인하고 데이터베이스의 테이블에 날짜와 함께 학생 정보를 저장하는 학생 check_list 프로그램을 만들었습니다. 그것들은 훌륭합니다. 그러나 나는 그것을 자동으로 만들고 싶습니다. 나는 서버와 같은 작품으로 컴퓨터에 프로그램을 넣을 것이고, 프로그램은 08:30, 10.25와 같은 모든 수업 시작 시간을 검색 할 것입니다. ...C# 타이머 사용 방법은 무엇입니까?

제 질문은 타이머 사용 방법입니다. 나는 타이머를 사용하는 방법을 알고 있지만, 모든 수업 시작 시간에 그것을 어떻게 사용할 수 있습니까? 나는 수업 시작 시간을 포함하는 테이블을 가지고 있습니다. 또한 검색이 끝난 후 타이머를 멈춰야합니까? 그리고 타이머를 멈 추면 타이머를 다시 실행할 수 있습니까?

또 다른 질문은 내가 새 학생을 추적하거나 신체가 방에 방을 남겨 둘 수 있다는 것입니다.

답변

0

당신은 정기적으로 (간단한 타이머 30 초마다 같은) 현재 시간을 확인할 수 있으며, 아무 일도 발생하지 않는 경우가 10.25 있다면, 당신은 잠을 : 당신의 블루투스 폴링을 시작합니다.

수업 시간 중에 5 분마다 투표하여 신입생이 있는지 확인할 수 있습니다.

0

타이머의 Interval 속성을 현재 시간과 다음 시간의 차이로 설정할 수 있습니다. 그런 다음 수업이 끝난 후에 차이를 재설정하여 다음 학습을 준비하십시오. 그러나 이것은 분명한 함정을 가지고 있습니다. 타이머를 시작/정지하면 어떻게됩니까? 다음 레슨을 위해 간격을 재설정해야합니다.

또는 블루투스 기기를 다시 점검 할 시간이 있는지 주기적으로 확인하고 시간이 맞는지 확인하는 타이머를 만들 수 있습니다. 아마도 너무 정확할 필요는 없습니다.

// Add your own DateTimes 
DateTime[] times = new[] { new DateTime(2010, 4, 20, 16, 30,0,0), new DateTime(2010, 4, 20, 17, 0,0,0) }; 

Timer t = new Timer(); 
t.Interval = 30000; // 30 seconds, feel free to change 

// Each 30 secs check to see if the _time_ is before one of the ones specified; if it is RunMethod() 
t.Tick += (sender, e) => { if (times.Any(d => { DateTime dt = DateTime.Now; new DateTime(dt.Year, dt.Month, dt.Day, d.Hour, d.Minute, d.Second, d.Millisecond).CompareTo(dt) <= 0 })) RunMethod(); } 
+0

내가 타이머를 중지하거나하지가 무엇입니까? 또한 타이머를 멈추지 않으면 성능 문제가 발생할 것입니다?이 프로그램은 서버 어쩌면 구멍 년 작동합니다. – Ercan

0

내가 Quartz.NET를 사용하는 대신 타이머 덤비는의 작업을 예약 할 것 ...