2016-08-31 2 views
1

.NET 3.5 응용 프로그램의 유지 관리 작업을하고 있습니다. 응용 프로그램 시작 중에 많은 글꼴이 작업 디렉토리에서 읽고 Windows에 등록됩니다. 각각의 글꼴 파일에 대해(Gdi32.dll)에 대한 피 호출을 사용합니다.AddFontResource() Win10 주년 업데이트가 느림

코드는 항상 빠릅니다. 즉, Win10 기념일 업데이트 (이전에는 Win10에는 문제가 없었습니다)로 업그레이드 할 때까지 코드가 항상 빠릅니다. 이제 통화가 30 초가 걸리고 시작 시간이 90 초로 늘어납니다.

어떤 문제가 발생할 수 있습니까? 그리고 그것을 고치는 방법?

+1

내가 조사하는 방법은 * 단지 * AddFontResource'를 호출하고 Windows 10에서 여전히 느린지 확인하는 새로운 프로젝트를 만드는 것입니다. 사용자가로드하는 글꼴과 똑같은 글꼴로 시도해보십시오. 응용 프로그램을 실행 한 다음 다른 글꼴로 시도해보십시오. 두 경우 모두 느린 지 확인하십시오. 문제의 범위를 좁히십시오. –

답변

0

나는 또한이 문제를 관찰했지만, 우리의 경우 해결책을 찾았습니다. AddFontResourceEx()으로 전화하십시오.

우리의 코드에서 전체 변화가 있었다 :

// from this 
AddFontResource(pFont); 

// to this 
AddFontResourceEx(pFont, FR_PRIVATE, 0); 

내가 개인적으로 테스트 한 시스템 중 적어도 하나의 속도 저하 문제를 해결했다.

+0

일부 조정이 필요했지만 위의 방법이 완벽하게 작동했습니다. private const uint FR_PRIVATE = 0x10; [DllImport("gdi32.dll")] static extern int AddFontResourceEx(string lpszFilename, uint fl, IntPtr pdv); AddFontResourceEx("filename", FR_PRIVATE, IntPtr.Zero);

2

Windows 10 주년 기념 업데이트가 AddFontResource 및 RemoveFontResource API의 성능을 파괴합니다. 우리는 지금 PortableApps.com에서 그것으로부터의 낙진을 다루고 있습니다. 기념일 업데이트가 적용된 후 Windows 10에서만 발생하는 문제입니다. 내 오래된 느린 ASUS T100 컨버터블이 내 i7 데스크톱보다 USB 드라이브에서 코드를 실행하는 것이 너무 안 좋은 일입니다.

+0

확인. 내 컴퓨터에서만 문제가되는 것이 아니라 존과 @Marc Fauser에 대한 정보를 제공해 주셔서 감사합니다. –

+0

이 문제에 대해 일관된 재현을 얻을 수 있다면 Microsoft에 신고 했습니까? 침묵 속에서 고난을 겪지 않아도됩니다. –

+0

Microsoft에서 아무 것도보고하지 못하게하면 기꺼이 신고 해 드리겠습니다. 마이크로 소프트의 부러진 컨트롤러에 대한 해결책을 얻으려는 두 번의 시도가있었습니다. 첫 번째 담당자는 내가 소유하지 않은 액세서리에 대한 비용을 청구했습니다. –

관련 문제