第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

事件多次觸發(fā)(Lync SDK 2013)

事件多次觸發(fā)(Lync SDK 2013)

C#
慕妹3242003 2021-12-05 14:46:16
我使用 Lync SDK 2013。創(chuàng)建新對話(任何類型,不僅僅是音頻/視頻)時,我的conversation_added事件會觸發(fā)多次。永久訪問 LyncClient 需要每秒創(chuàng)建一次計(jì)時器檢查,以確保與 lync 應(yīng)用程序的有效連接。我創(chuàng)建了一個應(yīng)該在 WinForms 應(yīng)用程序中工作的片段public partial class FrmMain : Form    {        public FrmMain()        {            InitializeComponent();            InitializeConnectionTimer();        }        private LyncClient client;        private ConversationManager conversationManager;        private Timer connectionTimer;        private bool networkAvailable;        private void InitializeConnectionTimer()        {            connectionTimer = new Timer            {                Interval = 1000            };            connectionTimer.Tick += connectionTimer_Tick;            connectionTimer.Start();        }        private void CheckConnection()        {            TrySetClient();            SetConversationManager();        }        private void TrySetClient()        {            client = null;            try            {                client = LyncClient.GetClient();                client.ClientDisconnected += Client_Disconnected;                client.StateChanged += Client_StateChanged;            }            catch (Exception)            {            }        }        private void SetConversationManager()        {            if (client != null)            {                conversationManager = client.ConversationManager;                conversationManager.ConversationAdded += Conversation_Added;            }            else            {                conversationManager = null;            }        }        private void Client_Disconnected(object sender, EventArgs e)        {            CheckConnection();        }        private void Client_StateChanged(object sender, ClientStateChangedEventArgs e)        {            CheckConnection();        }你可以在這里看到完整的例子https://pastebin.com/1tR3v8We我認(rèn)為出現(xiàn)錯誤是因?yàn)槲铱偸菍㈩~外的事件偵聽器附加到 LyncClient。但我必須TrySetClient()每秒檢查客戶端連接,因?yàn)?Skype 應(yīng)用程序可能會關(guān)閉、崩潰等。我怎樣才能解決這個問題?
查看完整描述

1 回答

?
翻閱古今

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超5個贊

這不是 lync-client-sdk 問題,而是一個經(jīng)典的 C# 事件問題。


在連接新手柄之前,您需要移除當(dāng)前的手柄。您應(yīng)該在清除客戶端指針之前執(zhí)行此操作。


如果您不知道是否已連接處理程序,則可以使用一個“技巧”。您可以刪除一個處理程序,如果它不存在,它就會被忽略。


這允許您執(zhí)行以下操作:


client = LyncClient.GetClient();

client.ClientDisconnected -= Client_Disconnected;

client.ClientDisconnected += Client_Disconnected;

client.StateChanged -= Client_StateChanged;

client.StateChanged += Client_StateChanged;

如果您對所有手柄都這樣做,那么這將解決您的問題。


更強(qiáng)烈建議您在完成處理后很好地移除句柄,因?yàn)樽屗鼈儽3诌B接可能會使您的類保留在內(nèi)存中。如果您不小心,這可能會導(dǎo)致實(shí)時泄漏。


查看完整回答
反對 回復(fù) 2021-12-05
  • 1 回答
  • 0 關(guān)注
  • 235 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號