Exemplo n.º 1
0
        /// <summary>初期処理</summary>
        private void Form1_Load(object sender, EventArgs e)
        {
            // 登録エントリ

            // スレッド
            this.AeeTh = new AsyncEventEntry(
                AsyncEventEnum.EventClass.Thread, "Thread", null,
                new ParameterizedThreadStart(this.ParameterizedThreadStartDgt));

            AsyncEventFx.RegisterAsyncEvent(this.AeeTh);

            // ---

            // スレッド プール
            this.AeePl = new AsyncEventEntry(
                AsyncEventEnum.EventClass.ThreadPool, "ThreadPool", null,
                new WaitCallback(this.WaitCallbackDgt));

            AsyncEventFx.RegisterAsyncEvent(this.AeePl);

            // ---

            // WinForm
            this.AeeWin = new AsyncEventEntry(
                AsyncEventEnum.EventClass.WinForm, "WinForm", this,
                new AsyncEventFx.SetResultDelegate(this.SetResultDgt));

            AsyncEventFx.RegisterAsyncEvent(this.AeeWin);

            // ---

            // WPF
            this.AeeWPF = new AsyncEventEntry(
                AsyncEventEnum.EventClass.WPF, "WPF", this,
                new AsyncEventFx.SetResultDelegate(this.SetResultDgt));

            AsyncEventFx.RegisterAsyncEvent(this.AeeWPF);
        }
Exemplo n.º 2
0
        /// <summary>初期処理</summary>
        private void Form1_Load(object sender, EventArgs e)
        {
            // 登録エントリ

            // スレッド
            this.AeeTh = new AsyncEventEntry(
                AsyncEventEnum.EventClass.Thread, "Thread", null,
                new ParameterizedThreadStart(this.ParameterizedThreadStartDgt));

            AsyncEventFx.RegisterAsyncEvent(this.AeeTh);

            // ---

            // スレッド プール
            this.AeePl = new AsyncEventEntry(
                AsyncEventEnum.EventClass.ThreadPool, "ThreadPool", null,
                new WaitCallback(this.WaitCallbackDgt));

            AsyncEventFx.RegisterAsyncEvent(this.AeePl);

            // ---

            // WinForm
            this.AeeWin = new AsyncEventEntry(
                AsyncEventEnum.EventClass.WinForm, "WinForm", this,
                new AsyncEventFx.SetResultDelegate(this.SetResultDgt));

            AsyncEventFx.RegisterAsyncEvent(this.AeeWin);
            
            // ---

            // WPF
            this.AeeWPF = new AsyncEventEntry(
                AsyncEventEnum.EventClass.WPF, "WPF", this,
                new AsyncEventFx.SetResultDelegate(this.SetResultDgt));

            AsyncEventFx.RegisterAsyncEvent(this.AeeWPF);
        }
Exemplo n.º 3
0
            /// <summary>非同期イベント エントリ削除</summary>
            /// <param name="aee">非同期イベント エントリ</param>
            /// <returns>
            /// ・成功:true
            /// ・失敗:false
            /// </returns>
            /// <remarks>メッセージID付きのエントリは自動的に削除される。</remarks>
            public bool UnRegisterAsyncEvent(AsyncEventEntry aee)
            {
                // 非同期イベント エントリのリスト
                List<AsyncEventEntry> aee_lst = null;

                if (this.AEES.ContainsKey(aee.FuncID))
                {
                    // 既に登録済み

                    // 非同期イベント エントリのリストを取得
                    aee_lst = this.AEES[aee.FuncID];

                    // 非同期イベント エントリを削除
                    // IEquatable対応済み。
                    return aee_lst.Remove(aee);
                }
                else
                {
                    // 未登録
                    return false;
                }
            }
Exemplo n.º 4
0
            /// <summary>非同期イベント エントリ登録</summary>
            /// <param name="aee">非同期イベント エントリ</param>
            public void RegisterAsyncEvent(AsyncEventEntry aee)
            {
                // 非同期イベント エントリのリスト
                // (1つの機能IDに対して複数のエントリを登録可能)
                List<AsyncEventEntry> aee_lst = null;

                if (this.AEES.ContainsKey(aee.FuncID))
                {
                    // 既に登録済み

                    // 非同期イベント エントリのリストを取得
                    aee_lst = this.AEES[aee.FuncID];
                }
                else
                {
                    // 未登録

                    // 非同期イベント エントリのリストを生成して追加
                    aee_lst = new List<AsyncEventEntry>();
                    this.AEES.Add(aee.FuncID, aee_lst);
                }

                // 非同期イベント エントリのリストにエントリを追加
                aee_lst.Add(aee);
            }
Exemplo n.º 5
0
 /// <summary>非同期イベント エントリ削除</summary>
 /// <param name="aee">非同期イベント エントリ</param>
 /// <returns>
 /// ・成功:true
 /// ・失敗:false
 /// </returns>
 /// <remarks>メッセージID付きのエントリは自動的に削除される。</remarks>
 public static bool UnRegisterAsyncEvent(AsyncEventEntry aee)
 {
     lock (AsyncEventFx._lock) // staticなのでロックする。
     {
         return AsyncEventFx.NPS.UnRegisterAsyncEvent(aee);
     }
 }
Exemplo n.º 6
0
        /// <summary>非同期イベント登録</summary>
        /// <param name="aee">非同期イベント エントリ</param>
        /// <returns>
        /// ・成功:true
        /// ・失敗:false
        /// </returns>
        public static bool RegisterAsyncEvent(AsyncEventEntry aee)
        {
            lock (AsyncEventFx._lock) // staticなのでロックする。
            {
                AsyncEventFx.NPS.RegisterAsyncEvent(aee);
            }

            return true; // 将来的にfalse対応があるかもしれないので。
        }