için ben de, sonuç yazdırmadan önce döngü tamamlamak istiyorum:C# Threading içeride döngü
for (int i = 0; i < 5; i++)
{
(new System.Threading.Thread(() =>
{
if (TimeTakingMethod())
{
++nResult;
}
})).Start();
}
Console.WriteLine("Count = " + nResult);
ancak bu konu baskı ana iş parçacığı üzerinde yapılır, çünkü bitmesini Console.WriteLine beklemeyecek . Ben bunu değiştirirseniz
:
System.Threading.Thread t = new System.Threading.Thread(() =>
{
for (int i = 0; i < 5; i++)
{
(new System.Threading.Thread(() =>
{
if (TimeTakingMethod())
{
++nResult;
}
})).Start();
}
});
t.Start();
t.Join();
Console.WriteLine("Count = " + nResult);
iç içe ipler bekledi olmayacak çünkü hala sorunu çözmez.
Bunun için basit bir çözüm var mı? Bunun için teşekkürler.
Böyle iş parçacıkları kullanmanın amacı nedir? zaten bitirene kadar bekleyeceksin ... – Idos
Gözlemsel mantık? Ne yaptığını ve nedenini açıklamanı öneririm? Açık bir sebep olmaksızın iç içe geçmiş iş parçacıkları – Saleem
Idos ve Saleem, beklemenin nedeni, sonuç yalnızca döngü işleminden sonra yazdırılması gerektiğidir. Orada iş parçacığı kullandım çünkü döngüdeki her yineleme zaman alıyor. Soru sütununda verdiğim açıklama, karmaşık bir görevin çok basitleştirilmiş bir versiyonudur, bu yüzden bu soru, programın çoklu okumaya ihtiyaç duymayacağına benzeyebilir. Crashmstr, Katılıyorum, bunun için teşekkürler. Bu sayfada yazılanlar aşağıdaki sayfada verilen diğer cevaplarla birlikte yardımcı oldu: List threads = new List (); // Bu koleksiyona üyelerinizi ekleyin threads.WaitAll(); –