Windowsアプリの制御フロー
-
30-10-2019 - |
質問
私のアプリには、Cyclemanagerというシングルトンクラスがあります。私はこのようなこの目的のために封印されたクラスを作成しました
public sealed class CycleManager
{
public static readonly CycleManager instance = new CycleManager();
public CycleManager()
{
//ReadFromIsolatedStorage();
}
public static CycleManager Instance
{
get
{
return instance;
}
}
}
app.xaml.csには次のコードがあります
public App()
{
UnhandledException += Application_UnhandledException;
InitializeComponent();
InitializePhoneApplication();
RootFrame.Navigating += new NavigatingCancelEventHandler(RootFrame_Navigating); if (System.Diagnostics.Debugger.IsAttached)
{
Application.Current.Host.Settings.EnableFrameRateCounter = true;
PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled;
}
}
rootframe_navigating()を使用して、メインページまたはログインページに移動する必要があるかどうかを確認しました。
void RootFrame_Navigating(object sender, NavigatingCancelEventArgs e)
{
//throw new NotImplementedException();
if (e.Uri.ToString().Contains("/RootPage.xaml") != true)
return;
CycleManager pCycMan = CycleManager.instance;
e.Cancel = true;
RootFrame.Dispatcher.BeginInvoke(delegate
{
if (pCycMan.GetPasswordEnabled())
RootFrame.Navigate(new Uri("/PasswordPage.xaml", UriKind.Relative));
else
RootFrame.Navigate(new Uri("/MainPage.xaml", UriKind.Relative));
});
}
rootframe_navigating()内でインスタンスが呼び出されると、cyclemanagerインスタンスが作成されると予想していました。
しかし、デバッグでは、APP()構造者の後にJUSがCycleManagerクラスに移動し、CycleManager()コンストラクターの後にRootFrame_Navigatingに移動することがわかりました。 !!何か問題がありますか、それとも私はそれが間違っていることを理解しましたか?
2番目のことは、実行時です CycleManager pCycMan = CycleManager.instance;
CycleManagerの次のコードが呼ばれていると予想していましたが、驚くべきことにそうではありません。では、シングルトンプロパティはどのように管理されましたか?または、新しいOBJが作成されるたびに?
public static CycleManager Instance
{
get
{
return instance;
}
}
アルファ
正しい解決策はありません
所属していません StackOverflow