컴퓨터 지식 네트워크 - 컴퓨터 지식 - asp.net C#은 정기적으로 이메일을 보냅니다.

asp.net C#은 정기적으로 이메일을 보냅니다.

ASP.NET에서 타이머(Timer) 사용

실험에서 타이머(Timer)를 사용하여 ASP.NET에서 일부 예약된 작업을 완료할 수 있다는 것을 알았습니다. 이는 일부 웹 프로그램에 도움이 될 수 있습니다.

다음은 먼저 테스트 사용의 예를 소개합니다.

먼저 global.asax의 Application_OnStart 이벤트 프로세스에서 타이머를 정의합니다. 코드는 다음과 같습니다.

[ VB.NET] global.asax

lt; @ import Namespace="System.Timers"

lt; >

Sub Application_OnStart(sender As Object, e As EventArgs)

'타이머 생성, 단위: 밀리초

Dim aTimer As New System.Timers.Timer(10000)

'타이머의 Elapsed 이벤트 핸들러로 Fresher를 지정합니다.

AddHandler aTimer.Elapsed, AddressOf Fresher

'AutoReset 속성이 true이면 지정된 시간마다 반복합니다. /p>

' false인 경우 한 번만 실행합니다.

aTimer.AutoReset = True

aTimer.Enabled = True

' 먼저 Application("TimeStamp")의 초기 값을 지정합니다

Application.Lock()

Application("TimeStamp") = DateTime.Now.ToString()

Application.UnLock()

End Sub

p> p>

Sub Fresher(sender As Object, e As ElapsedEventArgs)

Application.Lock()

Application("TimeStamp") = DateTime.Now.ToString( )

Application.UnLock()

End Sub

lt;/scriptgt;

그런 다음 간단히 test.aspx를 작성하여 애플리케이션("TimeStamp") 값을 확인하세요.

코드는 다음과 같습니다:

[VB.NET] test.aspx

lt;

Response.Write(Application("TimeStamp"))

gt;

분석:

global.asax의 코드에 따르면 Fresher()에서 10초마다 Fresher() 프로세스를 실행하도록 타이머를 설정했습니다. ) 프로세스에서 실제로는 Application("TimeStamp")의 새 값을 다시 작성합니다. 즉, Application("TimeStamp")의 값은 10초마다 업데이트되어야 합니다.

이런가요? test.aspx를 반복적으로 새로 고쳐서 Application("TimeStamp") 값을 관찰한 결과, 이 값은 10초마다 변경되지만 다른 때는 변경되지 않은 상태로 유지되는 것으로 나타났습니다. 이는 우리의 기대와 일치합니다.

의미:

타이머를 도입함으로써 타이머를 유연하게 사용하여 ASP.NET의 글로벌 애플리케이션에서 다음과 같은 일부 타이밍 작업을 완료할 수 있습니다. 커뮤니티/포럼 시스템에서, 온라인 사용자 목록은 5분마다 업데이트되고, 사용자 경험 가치는 1시간마다 업데이트되거나, 주요 데이터는 격일로 백업됩니다. 이 아이디어는 매우 유혹적입니다.

논의:

Q: ASP.NET 코드의 어느 곳에서나 타이머를 사용할 수 있습니까?

A: 일반 *.aspx에 타이머 삽입을 테스트하지 않았습니다. 그러나 B/S 프로그램의 특성상 *.aspx에 타이머를 삽입하는 것이 가능하다고 하더라도 좋은 선택은 아니다. B/S 프로그램의 경우 클라이언트의 요청을 받는 서버 자체가 이벤트이기 때문에 이 이벤트를 처리하는 동안 서버는 신속하게 응답하고 클라이언트에 해당하는 HTML 코드를 생성한 후 프로세스를 종료해야 합니다. *.aspx에서 타이머를 사용하는 경우(허용되는 경우) 첫째, 필요하지 않습니다. 둘째, *.aspx를 실행할 때마다 새 타이머가 삽입될 수 있으므로 시스템이 너무 많은 타이머를 삽입하기 쉽습니다. ) 시스템을 마비시킵니다.

따라서 global.asax의 Application_OnStart에서만 사용하는 것이 더 안전하다고 제안합니다

上篇: Centos server 는 어떻게 명령을 ping 합니까? 下篇: 블루 시계는 어떤 브랜드입니까?
관련 내용