Ejemplo n.º 1
0
        public void Execute()
        {
            // 以下のコメントを外す事でコントロールが最初にnewされた際に
            // WindowsFormsSynchronizationContextが読み込まれないように出来ます。
            // falseにすると、デフォルトでSynchronizationContextが読み込まれます。
            //WindowsFormsSynchronizationContext.AutoInstall = false;

            WinFormsApplication.EnableVisualStyles();
            WinFormsApplication.Run(new SampleForm());
        }
        public void Execute()
        {
            //
            // SynchronizationContextは、同期コンテキストを様々な同期モデルに反映させるための
            // 処理を提供するクラスである。
            //
            // 派生クラスとして以下のクラスが存在する。
            //   ・WindowsFormsSynchronizationContext   (WinForms用)
            //   ・DispatcherSynchronizationContext   (WPF用)
            //
            // 基本的に、WinFormsもしくはWPFを利用している状態で
            // UIスレッドとは別のスレッドから、UIを更新する際に裏で利用されているクラスである。
            // (BackgroundWorkerも、このクラスを利用してUIスレッドに更新をかけている。)
            //
            // 現在のスレッドのSynchronizationContextを取得するには、Current静的プロパティを利用する。
            // 特定のSynchronizationContextを強制的に設定するには、SetSynchronizationContextメソッドを利用する。
            //
            // デフォルトでは、独自に作成したスレッドの場合
            // SynchronizationContext.Currentの戻り値はnullとなる。
            //
            Output.WriteLine(
                "現在のスレッドでのSynchronizationContextの状態:{0}",
                SynchronizationContext.Current == null
                    ? "NULL"
                    : SynchronizationContext.Current.ToString()
                );

            //
            // フォームを起動し、値を確認.
            //
            WinFormsApplication.EnableVisualStyles();

            var aForm = new SampleForm();

            WinFormsApplication.Run(aForm);

            Output.WriteLine("WinFormsでのSynchronizationContextの型名:{0}", aForm.ContextTypeName);
        }
Ejemplo n.º 3
0
 public void Execute()
 {
     WinFormsApplication.EnableVisualStyles();
     WinFormsApplication.Run(new StringInfoSampleForm());
 }
Ejemplo n.º 4
0
 public void Execute()
 {
     WinFormsApplication.EnableVisualStyles();
     WinFormsApplication.Run(new ServerTimerSamples01());
 }