जब धागे को उत्पन्न करने के कारण है कि मैं अप्रत्याशित उत्पादन मिल रहा है?

वोट
4

मैं धागे की निश्चित संख्या में अंडे देने के लिए कोशिश कर रहा था। लेकिन जब मैं समारोह के लिए तर्क पारित उत्पादन यादृच्छिक है। यह कई बार के लिए चर के कुछ मूल्यों 'i' चुनता है और कुछ ध्यान नहीं देता। मैं सी # में एक नौसिखिया हूँ। अगर मैंने कुछ गलत कर रहा हूँ की व्याख्या करें।

using System;
using System.Threading;

public class first
{
     public static void tone(int i)
{
        Console.WriteLine(Hi ! this is thread : {0} ,i);
        Thread.Sleep(10);
}

public static void Main(String[] args)
{
    int i;
    for (i = 0; i < 10; i++)
    {
        Thread th1 = new Thread(()=>tone(i) );
        th1.Start();
       // Console.WriteLine(i);
    }
    Console.WriteLine(hey there!);
    Console.ReadLine();
}

}

यहाँ

19/05/2014 को 11:50
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
7

की वजह से बंद :

करने के लिए अपने कोड में परिवर्तित करें:

int i;
    for (i = 0; i < 10; i++)
    {
       int j = i;
        Thread th1 = new Thread(()=>tone(j) );
        th1.Start();
       // Console.WriteLine(i);
    }
19/05/2014 को 11:53
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more