欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解C#如何實現(xiàn)一個安全的事件訂閱器

 更新時間:2024年01月31日 13:57:06   作者:搬磚的詩人Z  
事件訂閱器是一個對象,它訂閱(或監(jiān)聽)某個事件,并在事件發(fā)生時執(zhí)行相應(yīng)的操作,本文主要介紹了C#實現(xiàn)一個安全的事件訂閱器的相關(guān)知識,感興趣的可以了解下

1.解釋下什么是事件訂閱器

在C#的上下文中,事件訂閱器是一種用于處理特定事件的機制。

事件(Event):事件是在軟件應(yīng)用程序中發(fā)生的事物,如按鈕被點擊、數(shù)據(jù)被更改等。在C#中,事件是通過使用event關(guān)鍵字聲明的委托(delegate)來定義的。DevExpress控件和框架通常會觸發(fā)各種事件,以便您的應(yīng)用程序能夠?qū)τ脩舻慕换セ蚱渌到y(tǒng)變化做出響應(yīng)。

事件訂閱器: 事件訂閱器是一個對象,它訂閱(或監(jiān)聽)某個事件,并在事件發(fā)生時執(zhí)行相應(yīng)的操作。

2.事件訂閱器有什么作用

通知訂閱對象,告知變化發(fā)生,并把變化發(fā)生時候的數(shù)據(jù)通知到具體訂閱的委托方法中。

3.示例代碼

我這邊封裝了一個全局的事件訂閱器,采用一個靜態(tài)函數(shù)的方法來實現(xiàn)全局可以調(diào)用,試用一個字段存儲當前訂閱的消息,防止一個事件多次訂閱的問題。

代碼如下:

 public static class EventSubscriber
 {
     /// <summary>
     /// 訂閱消息字典
     /// </summary>
     private static Dictionary<string, SendMessageHandler> MsgDict = new Dictionary<string, SendMessageHandler>();
     public delegate void SendMessageHandler(object MsgContent);

     /// <summary>
     /// 訂閱消息
     /// </summary>
     /// <param name="name">消息唯一名稱</param>
     /// <param name="AcceptFunction">接受消息的方法</param>
     /// <exception cref="Exception"></exception>
     public static void SubMsg(string name, SendMessageHandler AcceptFunction)
     {
         if (!MsgDict.ContainsKey(name))
         {
             MsgDict.Add(name, AcceptFunction);
         }
         else
         {
             // throw new Exception("已經(jīng)有" + name + "名稱的訂閱");
         }
     }

     /// <summary>
     /// 移除指定訂閱消息
     /// </summary>
     /// <param name="name">消息名稱</param>
     public static void UnSubMsg(string name)
     {
         if (MsgDict.ContainsKey(name))
         {
             MsgDict.Remove(name);
         }
     }

     /// <summary>
     /// 發(fā)送消息
     /// </summary>
     /// <param name="name">消息名稱</param>
     /// <param name="msgContent">消息內(nèi)容</param>
     public static void SendMsg(string name, object msgContent)
     {
         if (MsgDict.ContainsKey(name))
         {
             MsgDict[name].Invoke(msgContent);
         }
     }
 }

使用方法:

訂閱消息:

  EventSubscriber.SubMsg("GetDataTable", SendMessageHandler);

當消息通知時候,獲得事件傳遞過來的數(shù)據(jù)并處理

    public void SendMessageHandler(object MsgContent)
    {
        var data = (DataTable?)MsgContent;
        TableWait = true;
    }

到此這篇關(guān)于詳解C#如何實現(xiàn)一個安全的事件訂閱器的文章就介紹到這了,更多相關(guān)C#事件訂閱器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#.Net基于正則表達式抓取百度百家文章列表的方法示例

    C#.Net基于正則表達式抓取百度百家文章列表的方法示例

    這篇文章主要介紹了C#.Net基于正則表達式抓取百度百家文章列表的方法,結(jié)合實例形式分析了C#獲取百度百家文章內(nèi)容及使用正則表達式匹配標題、內(nèi)容、地址等相關(guān)操作技巧,需要的朋友可以參考下
    2017-08-08
  • c# 繼承快速入門

    c# 繼承快速入門

    這篇文章主要介紹了c# 繼承快速入門的相關(guān)資料,幫助大家更好的理解和學習使用c#,感興趣的朋友可以了解下
    2021-03-03
  • C#獲取屏幕分辨率縮放比例的方法與示例

    C#獲取屏幕分辨率縮放比例的方法與示例

    在C#中,獲取屏幕分辨率縮放比例通常指的是Dpi縮放比例,它表示顯示設(shè)備的獨立像素與設(shè)備無關(guān)像素(96 DPI)的比例,這通常用于確保應(yīng)用程序在不同分辨率和縮放設(shè)置的顯示設(shè)備上都能正確顯示,本文給大家介紹了C#獲取屏幕分辨率縮放比例的方法與示例,需要的朋友可以參考下
    2024-07-07
  • C#操作實現(xiàn)Word全域查找且替換

    C#操作實現(xiàn)Word全域查找且替換

    這篇文章主要為大家詳細介紹了C#如何操作實現(xiàn)Word全域查找且替換功能,文中的示例代碼講解詳細,具有一定的借鑒價值,有需要的小伙伴可以參考下
    2024-04-04
  • c#中使用BackgroundWorker的實現(xiàn)

    c#中使用BackgroundWorker的實現(xiàn)

    本文主要介紹了c#中使用BackgroundWorker的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • C#導出Excel的方法

    C#導出Excel的方法

    本文給大家分享的是基于.net 1.0開發(fā)的程序如何實現(xiàn)導出Excel的方法和示例,使用的是UltraWebGrid自帶導出Excel的控件,非常的簡單實用,有需要的小伙伴可以參考下。
    2015-06-06
  • C#編程之事務(wù)用法

    C#編程之事務(wù)用法

    這篇文章主要介紹了C#編程之事務(wù)用法,結(jié)合實例形式對比分析了C#中事務(wù)提交與回滾的具體實現(xiàn)技巧與相關(guān)注意事項,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-11-11
  • C# 使用WPF 用MediaElement控件實現(xiàn)視頻循環(huán)播放

    C# 使用WPF 用MediaElement控件實現(xiàn)視頻循環(huán)播放

    在WPF里用MediaElement控件,實現(xiàn)一個循環(huán)播放單一視頻的程序,同時可以控制視頻的播放、暫停、停止。這篇文章給大家介紹了C# 使用WPF 用MediaElement控件實現(xiàn)視頻循環(huán)播放,需要的朋友參考下吧
    2018-04-04
  • c#委托把方法當成參數(shù)(實例講解)

    c#委托把方法當成參數(shù)(實例講解)

    本篇文章主要是對c#委托把方法當成參數(shù)的實例代碼進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-01-01
  • C#控制臺模擬電梯工作原理

    C#控制臺模擬電梯工作原理

    簡單的模擬一下電梯的運行,電梯內(nèi)部和外部樓層呼叫的優(yōu)先級判斷。以前學硬件的時候做這個不成問題,現(xiàn)在用軟件來模擬對我來說比較難,要C#的圖形界面。求高手賜教。
    2015-06-06

最新評論