我試圖在我的應用程序中實現多線程,這使得大量的浮點數計算(神經網絡)。多線程更新陣列
我寫了一個函數,它在該函數之外進行必要的計算並更新數組。 我的實際,單線程代碼如下所示(簡化以便更好地理解):
class MyClass
{
// this array after all calculations should contain
// result of only one calculation,
// that returned smallest value in one of array fields
// (smallest neural network error)
float[] bestResult;
// runs calculations on all "sets of data"
public void findBestResult(void)
{
foreach (something...) // data rows from database cached in one array
{
calculate(x[]);
}
}
// calculates one "set of data"
public void calculateAndUpdateResultIfBetter(float[] inputData)
{
if (bestResult[0] > calculatedData[0])
bestResult = calculatedData; // update only if condition is true
}
}
林低水平程序員,我不知道如何使用先進的.NET線程技術,使用同步(?)等等。我知道如何創建一個額外的線程,並通過使用委託更新窗體上的一些控件。
我不知道如何使用2-8個線程完成相同的事情並相互競爭。
問題1是 - 你能幫我嗎?我不知道如何開始。解決方案NikoDrašković
編輯: 問題2是 - 將lock()方法鎖定我的數組讀取和寫入?
你見過[lock](http://msdn.microsoft.com/en-us/library/c5kehkcz%28v=vs.80%29.aspx)? – neeKo
不,我沒有。這似乎是我的答案,但我需要一些更多的提示。我添加額外的問題。 – Kamil