다중 양식 .NetCF 3.5 응용 프로그램에서 사용자가 이전 양식을 사용하는 동안 백그라운드에서 양식을 만들려고합니다. 우리는 우리는 래퍼 클래스 (FormController
)를 사용하여 프로젝트OAC를 사용하여 .netCF의 다른 (백그라운드) 스레드에서 생성 된 양식을 표시하려고 할 때 예외가 발생했습니다.
에 방향 인식 제어를 사용하는 우리의 응용 프로그램에서 다른 형태의 정적 참조를 유지하기 위해 (내가 잘못된 용어를 사용하고 있으면 알려 주시기 바랍니다). 우리는 단지 한 번만 만들고 싶기 때문입니다.
양식이 처음 사용될 때 작성됩니다. 2,146,233,067하고 가치있는 다른 : 이것은 시간이 소요 작업이기 때문에 내가 GotoSecForm()
를 호출 할 때 사용자
Application.Run(new FormController.StartUI());
class FormController{
private static object lockObj = new object();
private static bool secIsLoaded = false;
private static StartForm startForm = new StartForm();
private static SecForm m_SecForm;
static SecForm FormWorkOrderList
{
get
{
CreateSecForm();
return m_SecForm;
}
}
private static void StartUI(){
startForm.Show();
ThreadStart tsSecForm = CreateSecForm;
Thread trSecForm = new Thread(tsSecForm);
trSecForm.Priority = ThreadPriority.BelowNormal;
trSecForm.IsBackground = true;
trSecForm.Start();
return startForm;
}
private static void CreateSecForm()
{
Monitor.Enter(lockObj);
if(!secIsLoaded){
m_SecForm = new SecForm();
secIsLoaded = true;
}
Monitor.Exit(lockObj);
}
private static void GotoSecForm()
{
SecForm.Show();
StartForm.Hide();
}
프로그램이 HRESULT과 exection와 SecForm.Show()
상의 excepton을 발생하면서 그러나 우리는 백그라운드에서이 작업을 수행하고 싶습니다 정보.
이 예외의 스택 트레이스는 다음과 같습니다
on Microsoft.AGL.Common.MISC.HandleAr(PAL_ERROR ar)
on System.Windows.Forms.Control.SuspendLayout()
on b..ctor(OrientationAwareControl control)
on Clarius.UI.OrientationAwareControl.ApplyResources(CultureInfo cultureInfo, Boolean skipThis)
on Clarius.UI.OrientationAwareControl.ApplyResources()
on Clarius.UI.OrientationAwareControl.OnLoad(EventArgs e)
on Clarius.UI.OrientationAwareControl.c(Object , EventArgs)
on System.Windows.Forms.Form.OnLoad(EventArgs e)
on System.Windows.Forms.Form._SetVisibleNotify(Boolean fVis)
on System.Windows.Forms.Control.set_Visible(Boolean value)
on System.Windows.Forms.Control.Show()
내가 잘못 여기에 무슨 일이 일어나고 있는지에 대해 매우 qlueless입니다. 누구든지 나를 도울 수 있습니까?
백그라운드에서 양식을로드하는 데 더 좋은 방법이 있습니까?
추가 정보가 필요하면 알려주세요.
감사합니다 (이 글을 쓰는 통해 절반 방법은 그러나 나는 내가 위는 여전히이 상황에서 적용되는 99 % 확신,이 질문은 윈도우 모바일에 관한 것을 깨달았다)! 나는 이것을 시험해보고 나의 발견과 함께 여기로 돌아갈 것이다. –
WinMo에서도 동일한 규칙이 적용되므로 제안 사항이 100 % 유효합니다. – ctacke