나는 WMI 시스템 정보 수집 쿼리가 정방향 전용 및/또는 읽기 전용 인 경우 매우 빠르다고 동료로부터 들었다. 그건 의미가 있습니다. 하지만 어떻게해야합니까?C#에서 전진 전용, 읽기 전용 WMI 쿼리를 만드는 방법은 무엇입니까?
4
A
답변
5
EnumerationOptions 클래스를 사용하고 해당 Rewindable 속성을 false로 설정해야합니다. 당신은 (때 CIM_Datafile 같은) 인스턴스 많은 수의 클래스를 열거를 사용하고 한 번만 반환 ManagementObjectCollection을 열거 얻을 것이다 않는
using System;
using System.Management;
namespace WmiTest
{
class Program
{
static void Main()
{
EnumerationOptions options = new EnumerationOptions();
options.Rewindable = false;
options.ReturnImmediately = true;
string query = "Select * From Win32_Process";
ManagementObjectSearcher searcher =
new ManagementObjectSearcher(@"root\cimv2", query, options);
ManagementObjectCollection processes = searcher.Get();
foreach (ManagementObject process in processes)
{
Console.WriteLine(process["Name"]);
}
// Uncomment any of these
// and you will get an exception:
//Console.WriteLine(processes.Count);
/*
foreach (ManagementObject process in processes)
{
Console.WriteLine(process["Name"]);
}
*/
}
}
}
당신은 어떤 성능 향상을 볼 수 없습니다 예를 들면 다음과 같습니다. 또한 ManagementObjectCollection.Count 등을 사용할 수 없습니다. 읽기 전용 쿼리의 경우 어떻게 작성해야할지 모르겠습니다.
1
동료는 반자동 메서드 호출을 전달 전용 열거 자와 함께 사용해야한다는 의미 여야합니다. 반자동 모드에서는 WMI 메서드 호출이 즉시 반환되고 개체가 백그라운드에서 검색되어 만들어지면 요청시 반환됩니다. 또한 반자동 모드를 사용하여 많은 수의 인스턴스를 검색 할 경우 성능을 향상시키기 위해 전진 전용 열거자를 얻는 것이 좋습니다. 이러한 특징은 MSDN article에 설명되어 있습니다.
EnumerationOptions opt = new EnumerationOptions();
opt.ReturnImmediately = true;
opt.Rewindable = false;
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query, opt);
:
우로스가 지적했듯이, 일부 동기 모드에서 앞으로 만 열거를 얻을, 당신은 true
로 설정 ReturnImmediately
재산 및 false
로 설정 Rewindable
특성, 예를 들어으로 EnumerationOptions
클래스 인스턴스를 사용할 필요가
관련 문제
- 1. 읽기 전용 종속성 속성을 만드는 방법은 무엇입니까?
- 2. GridViewColumn을 읽기 전용/비활성화로 만드는 방법은 무엇입니까?
- 3. powershell에서 읽기 전용 멤버를 만드는 방법은 무엇입니까?
- 4. C에서 읽기 전용 메모리는 어떻게 구현됩니까?
- 5. 용도 @ 동적, 읽기 전용,//
- 6. DataGridView 읽기 전용 셀
- 7. 같은 읽기 전용
- 8. 읽기 전용 텍스트 상자
- 9. 읽기 전용 속성 초기화
- 10. 읽기 전용 드롭 다운
- 11. 구조 배열의 읽기 전용 복사본을 만드는 가장 빠른 방법은 무엇입니까?
- 12. django 폼에서 선택적으로 읽기 전용 필드를 만드는 방법은 무엇입니까?
- 13. Entity Framework에서 읽기 전용 엔터티를 만드는 방법은 무엇입니까?
- 14. 읽기 전용 텍스트 상자에 텍스트를 희미하게 만드는 방법은 무엇입니까?
- 15. 올바른 읽기 전용 속성 작성 방법은 무엇입니까?
- 16. 읽기 전용 속성을 설정하는 방법은 무엇입니까?
- 17. 읽기 전용 콘센트입니까?
- 18. Compact Framework에서 읽기 전용 제거
- 19. vb.net 읽기 전용 모양으로 DropDownList를 만드는 방법
- 20. 읽기 전용 모드의 Oracle TOAD
- 21. 문자열의 읽기 전용 목록
- 22. 읽기 전용 연결
- 23. 읽기 전용 폴더 시각화
- 24. 델파이 ClientDataset의 읽기 전용
- 25. 파일 열기 읽기 전용
- 26. 읽기 전용 C#을
- 27. 아이폰의 읽기 전용 항목
- 28. NSMutableArray를 읽기 전용
- 29. 수정 수출은 읽기 전용
- 30. XAML 읽기 전용 콤보