コード例 #1
0
 public void RemoveHandler(ListAddedEventHandler h)
 {
     lock (lock_object)
     {
         ListAdded -= h;
     }
 }
コード例 #2
0
        /// <summary>
        /// デバッグ用に思考エンジンとやりとりしているログを画面上に表示するためのダイアログ。
        /// </summary>
        /// <param name="log"></param>
        public DebugWindow(MemoryLog log)
        {
            InitializeComponent();

            var ListAdded_ = new ListAddedEventHandler(args =>
            {
                try
                {
                    // UIスレッドからの呼び出しを保証する。
                    TheApp.app.UIThread(() => ListAdded(args));
                }
                catch { } // 終了間際だとInvoke()で例外が出るかもしれないので握りつぶしておく。
            });

            log.AddHandler(ListAdded_, ref log_list);
            FormClosed += (sender, args) => { log.RemoveHandler(ListAdded_); };
            memory_log  = log;

            UpdateListBox();

            // すぐに入力出来るようにフィルター用のテキストボックスにフォーカスを移動させておく。
            ActiveControl = textBox1;

            FontUtility.ReplaceFont(this, TheApp.app.Config.FontManager.DebugWindow);
        }
コード例 #3
0
 /// <summary>
 /// Listが1行追加されたときに呼び出されるハンドラをセットして、
 /// その時点でのlistをコピーして取得する。
 /// </summary>
 /// <param name="h"></param>
 /// <param name="list"></param>
 public void AddHandler(ListAddedEventHandler h, ref Queue <string> list)
 {
     lock (lock_object)
     {
         ListAdded += h;
         list       = new Queue <string>(LogList); // その時点のlistをCloneして返す
     }
 }
コード例 #4
0
ファイル: DebugWindow.cs プロジェクト: mizar/MyShogi
        public DebugWindow(MemoryLog log)
        {
            InitializeComponent();

            var ListAdded_ = new ListAddedEventHandler(sender =>
            {
                // UIスレッドからの呼び出しを保証する。
                if (InvokeRequired)
                {
                    Invoke(new Action(() => ListAdded(sender)));
                }
                else
                {
                    ListAdded(sender);
                }
            });

            log.ListAdded += ListAdded_;
            FormClosed    += (sender, args) => { log.ListAdded -= ListAdded_; };

            memoryLog = log;

            UpdateListBox(log.LogList);
        }