程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> C#多線程變成傳遞參數解決方案

C#多線程變成傳遞參數解決方案

編輯:關於C#

在寫多線程程序的時候,往往委托調用的方法不能傳遞參數,但是我就遇到了一個問題,線程委托的方法必須要傳遞參數,因為我有多個線程,而多個線程所注冊的方法體基本上都是一樣的,只有幾個變量的值不一樣,我也不想寫什麼 方法1(){……} ; 方法2(){……} 方法3(){……}等等,因為我的線程有可能是100個,或者是更多,所以我放棄了這種方法,想用一個方法,然後向裡面扔參數,去用循環搞定它,這樣才能表現出程序的精簡型,和優秀程序員作風,於是我上網查閱了些資料,並且和同事交流了一下,得出一個解決方案:

首先~線程調用的類裡定義個變量,然後再線程委托的方法體內也定義一個變量,當然這個變量就是你千方百計想要穿進去的,然後方法體內的第一句話就是 "方法體變量 = 類的變量" ; 用一個循環去啟動這些線程,而且這些線程同樣都去注冊這個方法體

關鍵代碼部分:

for (int i = 0; i < _MAXSERVER; i++)
{
類變量= (ServerBean)serverState[i];//類變量賦值
Thread th = new Thread(new ThreadStart(ScanPort));//ScanPort是我的一個方法體
th.Start();
Thread.Sleep(10);//這裡睡上10秒是為了讓啟動的這個線程有足夠的時間去執行它的第一句
賦值語句
}

好了,大體思路就是這樣~~有不明白的或遇到同樣問題的可以討論討論

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved