看這個示例代碼共享局部變量:C#:在2個不同的線程
private void StartProgram()
{
for (int i = 0; i < 10; i++)
{
if (true) // some conditions
{
int Temp = i; // every thread has different memory location for Temp variable.
Thread ConnectThread = new Thread(ThreadMethod);
ConnectThread.Start(Temp);
}
}
}
private static void ThreadMethod(object Index)
{
int ID = (int)Index;
int Result = 0;
bool IsConnected;
Result = ClientSMPP[ID].tcpConnect(Host[ID], int.Parse(Port[ID]));
InsertToDatabaseMethod();
}
據我所知,溫度變量在存儲器中用於每個線程不同的位置。我的意思是每個線程都有一個單獨的字段。但是當我想在ThreadMethod中執行一些操作時,ID字段將會發生衝突。我的意思是它在每次ThreadMethod運行時都沒有唯一的值(例如ID的值是'1'3次)。我知道ThreadMethod中可能有超過1個線程,但它們有不同的內存。我不想使用Lock()。
如何忽略此衝突?
我不明白你的」重新問:你想在多個線程_share_了'int' – pb2q
可能StartProgram中方法調用幾個時間 –
和特定指數「一些條件」爲真 –