|
我們經(jīng)常會遇到:
1:客戶購買了5個用戶的許可,10個用戶的許可,軟件需要限制用戶的并發(fā)數(shù)量,我知道就是Oracle的并發(fā)用戶達到20個以上,那費用是非常昂貴的。
2:一個用戶只能登錄一次或者是一個賬號在同一時間只能登錄一個,若已經(jīng)是登錄了就不讓再登錄了,需要能控制用戶的并發(fā)登錄問題。
3:有的系統(tǒng)也需要能實現(xiàn)在線用戶列表、用戶的登錄狀態(tài)等,特別是即時消息功能的內(nèi)部管理系統(tǒng)等。
先把自己的思路整理圖貼出來如下:
C/S的部分參考代碼如下:這里為了實現(xiàn)定時獲取消息的平滑,利用了線程的方式,這樣不影響用戶的操作,是多線程實現(xiàn)定時獲取消息的。
/// <summary>
/// 消息檢測的線程
/// </summary>
private Thread MessageThread = null;
this.MessageThread = new Thread(new ThreadStart(this.MessageCheck));
MessageThread.Start();
private void MessageCheck()
{
while (!this.ExitApplication)
{
if (this.FormLoaded && (!this.Busyness))
{
if (this.Tag == null)
{
// 獲得新消息
// this.bwGetNewMessage.RunWorkerAsync();
this.GetNewMessage();
this.Tag = true;
}
else
{
// 若已經(jīng)是最小化、或者被隱藏起來了,就不用獲取在線狀態(tài),可以提高效率
if ((this.WindowState == FormWindowState.Minimized) || !(this.Visible))
{
// 閱讀消息狀態(tài)
// this.MessageChek();
}
// 獲取在線狀態(tài)列表
// this.bwGetOnLineState.RunWorkerAsync();
this.GetOnLineState();
this.Tag = null;
}
}
Thread.Sleep(1000);
}
}
NET技術(shù):淺談思路嚴謹?shù)挠脩粼诰€狀態(tài)控制【附部分C#參考代碼】,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。