GC.KeepAlive()
을 어떻게 사용합니까?GC.KeepAlive()를 사용하는 방법과 용도에 따라
i Socket을 사용하여 터미널 (Windows-CE)에서 서버로 파일을 전송합니다.
전송해야하는 시간은 8 분입니다.
오분 (터치 스크린을 누르지 경우) 윈도우 CE의 셧다운
내가 이것에 대한 GC.KeepAlive()
를 사용하는 경우 한 후, 내 문제를 해결입니까? .NET 용 MSDN 라이브러리 미리
GC.KeepAlive()
을 어떻게 사용합니까?GC.KeepAlive()를 사용하는 방법과 용도에 따라
i Socket을 사용하여 터미널 (Windows-CE)에서 서버로 파일을 전송합니다.
전송해야하는 시간은 8 분입니다.
오분 (터치 스크린을 누르지 경우) 윈도우 CE의 셧다운
내가 이것에 대한 GC.KeepAlive()
를 사용하는 경우 한 후, 내 문제를 해결입니까? .NET 용 MSDN 라이브러리 미리
에
감사 :
킵 얼라이브 방법의 목적은 조기 위험에 개체에 기준의 존재를 확인하는가비지 수집기에서 을 회수했습니다. 이 문제가 발생할 수있는 일반적인 시나리오는 개체가 관리 코드 또는 데이터에 대한 참조가 없을 때 이지만 개체가 Win32 API, 관리되지 않는 DLL 또는 COM을 사용하는 메서드와 같은 관리되지 않는 코드에서 계속 사용되고 있습니다.
이렇게하면 문제가 해결되지 않습니다. 실제로 그것은 당신의 문제와 관련이 없습니다. 매우 - 당신이 할 수 있는 유일한 방법은 한 전송이 진행되는대로
당신은 아주 드물게 GC.KeepAlive
을 사용할 필요가 없습니다 시스템 종료를 방지 코드를 추가, 윈도우 CE에서 실행되는 서비스/응용 프로그램에 드물게. 파이널 라이저의 부작용이 너무 일찍 발생하는 것을 막고 싶다면 이것을 사용하십시오. 난 가장 자주 사용 Mutex
에 대한 사용 - 애플 리케이션의 끝까지 뮤텍스를 살아있는 단 하나의 인스턴스가 있는지 확인하십시오. 실제로 using
성명이 여기에 더 좋지만, 별개의 문제입니다.
아니요, 귀하의 상황과 관련이없는 것으로 들립니다.
전원 끄기 화면은 장치의 전원 관리 설정입니다. 어떤 앱이 실행 중인지 여부에 관계없이 문제가 발생합니다. GC는 이것과 전혀 관련이 없습니다.
전원 장치가 저전력 상태로 전환하는 것을 방지하려면 몇 가지 옵션이 있습니다. 앱에서 정기적으로 SystemIdleTimerReset으로 전화 할 수 있습니다.
전원 상태를 SetSystemPowerState과 같이 원하는대로 강제 설정할 수 있습니다.
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\Timeouts]
(WM_SETTINGS_CHANGE 브로드 캐스트 IIRC 다음)의 설정을 조정하여 전원 관리자 시간 초과를 원하는대로 변경할 수 있습니다.
최상의 "솔루션"은 대상 요구 사항, 사용자 요구 사항 및 대상 장치의 전원 관리 시스템에 달려 있습니다.
해당 API를 사용해 보셨습니까? WinCE가 관리되지 않는 코드이므로 MSDN에 따르면 사실이거나 작동 할 수 있습니다. – Zenwalker