스플래시 화면 디스플레이 방법 모범 사례 C#
-
16-09-2019 - |
문제
기본 양식을 실행하기 직전에 새 스레드를 시작하여 스플래시 양식을 표시하고 있습니다.
이 스레드에서 실행하는 메소드에서 아래 옵션 1에 표시된대로 application.run을 사용하고 있습니다. 이것이 올바른 방법입니까, 아니면 application.run이라고 불렀기 때문에 나를 기다리는 데 문제가 있습니까? 대안은 옵션 2이며, 아래에 표시되어 .showdialog ()를 호출하여 양식을 표시합니다.
스플래시 형태 자체는 지정된 시간 후에 닫히고 양식 자체 내에서 제어되며 두 옵션 모두 잘 작동하는 것으로 보입니다.
제 질문은 다음과 같습니다. 선호되는 것은 옵션 1 또는 옵션 2입니까? 하나 또는 다른 하나에 대해 특정한 이유를 제시 할 수 있다면
감사.
메인 스 니펫 :
// Run splash screen thread.
Thread splash = new Thread(new ThreadStart(ShowSplash));
splash.Start();
// Run main application.
Application.Run(new MainForm());
스플래시 양식 옵션 표시 1 :
static void ShowSplash()
{
Application.Run(new SplashForm());
}
스플래시 양식 옵션 표시 2 :
static void ShowSplash()
{
using (SplashForm splash = new SplashForm())
{
splash.ShowDialog();
}
}
해결책
대부분의 정격 답변을 참조하십시오
다른 팁
옵션 2는 아마도 메인 형식과 동일한 mesageloop를 사용하지만 다른 스레드에서 사용하기 때문에 문제가 발생할 것입니다.
옵션 1은 괜찮습니다.
나는 이것이 특이한 관점일지도 모르지만 스플래시 화면을 사용하지 않고 대신 '환영 페이지'또는 '도움말> 대신'도움말>에 정보를 보여 주었습니까?
이를 수행해야 할 몇 가지 이유가 있습니다.
멀티 스레딩에 들어 가지 않는 한, 일부 경고/MSGbox가 상단에 팝업되면 스플래시 화면이 제대로 다시 표시되지 않을 수 있습니다.
'플러그인 x, y 및 z'가 설치된 스플래쉬 스크린은 해당 정보가로드 될 때까지 실제로 알 수 없습니다. 이 정보가로드되면 앱이 준비되므로 스플래시 화면을 닫거나 사용자가 방해가됩니다.
내가 쳐다보고 스플래시 화면을 놓치면, 당신이 말하는 모든 정보를 놓칠 것입니다. '3 일 안에 라이센스가 만료된다'는 정보의 일부이며 오늘은 금요일이므로 월요일에는 앱을 사용할 수 없다는 것을 알지 못합니다. 모호하지만 나는 그것을 보았다.