亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

怎么能讓下面的內容執行完畢,線程才啟動呢?

怎么能讓下面的內容執行完畢,線程才啟動呢?

C#
大話西游666 2022-07-01 07:07:27
send(client, "Getinfo", "Getinfo"); //發送獲取用戶信息的請求(登陸過程在上一個窗體完成了,暫存在服務端)string mark = "";string info = read(out mark); //讀取服務端回傳的信息和標記(mark)<-這里用的是同步讀取MessageBox.Show("Get info("+info+","+mark+")");if (mark == "INFO"){string[] infos = info.Split('_');MyNick = infos[0];label2.Text = infos[0];label3.Text = infos[1];Tray("VICQ(" + MyNick + ")", VelClient.Properties.Resources._20150726114602183_easyicon_net_32);MessageBox.Show("Tray setting done");}ThreadPool.QueueUserWorkItem(new WaitCallback(GetMsg));//這里是設定一個線程,無限循環讀取用戶列表和信息等。用戶列表是服務器每3秒向所有客戶端發布一次的。MessageBox.Show("Working start");現在問題是按理說上面的read是同步讀取,沒有讀取到內容就會卡在那里不動直到讀取到內容,但是實際運行時,卻因網絡延遲,導致上面的read沒有讀取到info下面的線程就開始了,結果獲取到的標記是USERLIST而不是INFO,怎么能讓上面的執行完畢,下面的線程才啟動呢?注:我想盡可能采用等待的方法,不想用循環判斷直到某個條件達成在break的方法。
查看完整描述

1 回答

?
蠱毒傳說

TA貢獻1895條經驗 獲得超3個贊

做一個bool變量,用來標記是否需要啟動后面的線程。初始值=false,當接收到符合條件的數據后再賦值為true。啟動線程前,判斷變量=true才能啟動線程。

查看完整回答
反對 回復 2022-07-05
  • 1 回答
  • 0 關注
  • 113 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號