어쩌면 이것은 바보 같은 질문 일 수 있지만 이벤트 리스너는 타이머와 같은 CPU 사이클을 사용합니까, 아니면 이벤트가 시작될 때까지 비활성 상태입니까?CPU 시간을 사용하는 이벤트 리스너
언어가 특정 언어입니까 아니면 모든 언어가 기본적으로 동일합니까?
네트워크 연결 끊기 이벤트가 발생했을 때 아무것도하지 않는 작은 서비스를 작성하고 싶습니다. 서비스가 방금 듣고있는 리소스 (물론 메모리가 아닌)를 사용하지 않기를 바랍니다. 이벤트가 실제로 해고 (및 이벤트 처리기가 호출)까지
나는 어떤 CPU 시간을 사용하지 않는이
using NetworkUtilities;
ManagementEventWatcher networkAdapterArrivalWatcher = new ManagementEventWatcher("\\root\\wmi","SELECT * FROM MSNdis_NotifyAdapterArrival ");
networkAdapterArrivalWatcher.Options.Timeout = new TimeSpan(0,0,5);
ManagementEventWatcher networkAdapterRemovalWatcher = new ManagementEventWatcher("\\root\\wmi","SELECT * FROM MSNdis_NotifyAdapterRemoval ");
networkAdapterRemovalWatcher.Options.Timeout = new TimeSpan(0,0,5);
ConnectionNotifierHandler handler = new ConnectionNotifierHandler();
networkAdapterArrivalWatcher.EventArrived += new EventArrivedEventHandler(handler.Arrived);
networkAdapterRemovalWatcher.EventArrived += new EventArrivedEventHandler(handler.Removed);
//Start watching for events
networkAdapterArrivalWatcher.Start();
networkAdapterRemovalWatcher.Start();
public void Arrived(object sender, EventArrivedEventArgs e)
{
using (ManagementBaseObject ev = e.NewEvent)
{
//Log the event
}
}
public void Removed(object sender, EventArrivedEventArgs e)
{
using (ManagementBaseObject ev = e.NewEvent)
{
//Log the event
}
}