C 這個地方的執行緒出錯是怎麼回事

時間 2023-03-25 12:05:11

1樓:網友

= 正在監聽。執行緒中這裡使用了控制元件針對你的這個程式委託這樣寫:

private delegate void mydelegate(string str);

private void setrich(string str) =str;

然後將 = 正在監聽。

改為"正在監聽。

這樣就行了。。

c# 多執行緒問題

2樓:匿名使用者

你的這個問題還真不好處理,執行緒套執行緒,還想等待全部完成,如果不想改設計的話,就使用manualresetevent這個物件,每次執行緒建立子執行緒時,都建立這個物件,保證所有的執行緒都執行完畢再將阻塞放開。(可採用計數方式,開始記錄需要建立多少個執行緒,再記錄一個變數(原子型)每個子執行緒完成時都將變數值加1,如果變數值==執行緒個數時,則將這個物件set())

但是這樣的效率真是不好說,多執行緒的目的就是想更快,並且是可併發的處理事情,你這樣設計就快不哪去啊。

設定全域性變數,這個不可取,在多執行緒中,如果只有一層這樣的執行緒,還可控,如果層數多了,又是加又是減的,根本控制不了。最後出問題都不知道怎麼分析,多執行緒在分析問題時,有些問題還可重現,有些問題十次能重現一次就不錯了。

也在做這方面的研究,有時間可以交流一下,看看你們的設計。

3樓:匿名使用者

用執行緒池wait

或者用執行緒join都可以達到你的要求。

4樓:hope_李

設一個全域性集合變數。每開一個子執行緒就往集合裡新增一個資料。

每個子執行緒完成時移除一個資料,在檢查集合裡是否有資料。如果沒有資料就可以通知主執行緒,所有執行緒都完成了。

5樓:匿名使用者

執行緒裡面加入判斷傳入一個bool型變數 當執行緒完成後給bool賦值 當傳入的bool型別改變時就能判斷出是否完成了。

c#多執行緒問題

6樓:路有時不在腳下

改變連線機制,提供思考模式如下:

一、區域網模式。

1、伺服器啟動監聽埠;

2、客戶端向服務發出連線請求,同時建立一個隨機監聽埠,並進行監聽;

3、伺服器接收到連線請求後建立一個連線,進行基本訊息驗證,驗證通過,讀取訊息協議中客戶端的ip和隨機埠,向客戶端發出連線請求,同時釋放伺服器端監聽建立的連線,以便處理下一個監聽;

4、客戶端與伺服器重新連線進行具體的通訊。

二、廣域網模式。

1、伺服器啟動監聽埠;

2、客戶端向服務發出連線請求;

3、伺服器接收到連線請求後建立一個連線,進行基本訊息驗證,驗證通過,建立一個隨機監聽埠,並把埠資訊返回到客戶端,同時釋放伺服器端監聽建立的連線,以便處理下一個監聽;

4、客戶端接收到伺服器端返回的埠資訊後再向伺服器連線;

4、客戶端與伺服器重新連線進行具體的通訊。

這個藍屏是怎麼回事,電腦藍屏是怎麼回事?

拔掉所有未接裝置,重啟電腦,檢視能否正常開機,如果不能正常開機,開機狂按f8,進入帶網路連線的安全模式,解除安裝近期安裝的軟體,用360或者其他維護軟體掃描系統,打補丁,防毒等,重新啟動,看是否能進入系統,如果不行,重新安裝系統。cpu溫度過高。或者你刪掉了主程式裡面的東西了,我以前也是這樣重新裝系...

這個男生是怎麼回事

只要你每天都要堅持打籃球 高訴你其實還是心態 身高這東西不能急哈 你要放寬心 別有不良的行為習慣太多 比如sy 很傷身體 睡眠也是一個重要的因素 要保證每天睡8小時左右 早上和晚上個喝一瓶牛奶 中午飯最好錯補充些營養 在下午下課的時候去打下籃球 星期天早上也起來打下籃球 能做到這樣 就很完美了 這樣...

我的魔獸爭霸3開啟總是出錯是怎麼回事啊

在確定沒有病毒和木馬的情況下試試下面的方法。1 硬體上的原因,主要是記憶體條不相容,你可用重灌系統來分辨是否此原因,如重灌後還是老樣子就是此類原因 比如你剛加過記憶體條或,記憶體條損壞 a 執行regedit進入登錄檔,在hkey local machine software microsoft w...