所以這一點是我一直在掙扎了一會兒。我不是編碼員,所以我無法調試以找出問題所在。我正在使用允許變量的程序,並且可以將C#代碼片段輸入到程序中。有兩個問題,我正在使用文件test.txt。該程序運行25個線程。我想從test.txt中獲取98行,但我不希望任何兩個線程採用相同的行。我已經從朋友那裏得到了下面的代碼,它似乎工作。我只是想確認代碼是正確的。現在我需要做的是爲這段代碼添加一條新規則。 {-Project.Directory-} accounts.xls中有一個文件。每行有一個帳戶。問題是在多線程從accounts.xls採用相同的帳戶兩次,所以我得到一個錯誤,因爲從一個賬戶只有一個請求被允許在同一時間。我希望能夠只需要每個線程一個帳戶,這是不可能的兩個線程使用相同的帳號,也不可能兩個線程從的test.txt採取同樣的思路。我只是想盡可能提高效率。我被告知它需要被鎖定,但我不明白C#。誰能幫忙?C#鎖定問題以重複
IList<string> list = project.Lists["Domain Format List"];
lock (SyncObjects.InputSyncer)
{
string[] result = FileSystem.FileGetLines(@"{-Project.Directory-}test.txt","0- 97",true,false);
foreach (string results in result)
{
list.Add(results);
}
}
編輯:的test.txt不是100行,它包含90K行,我要帶它從98線這就是爲什麼它需要被鎖定。另外,accounts.xls包含50行
@Alberto如果您編輯您還可以刪除*謝謝*。 [見這個元后(http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be-removed-from-posts) – rene
你的所有線程將在阻止'lock'行,這意味着不會有多線程。 – Groo
好吧,我刪除了「謝謝」,我在這裏還是新手。在Groo。多線程仍然有效,似乎它不是重複行,但現在我需要鎖定「accounts.xls」,所以如果你理解我的意思,它只需要一行。 – user3194329