İş için Birden çok iş Parçacığı tüm bitene kadar bekleyin sonra Spawn
sadece bir tavsiye: "uygulama" çoklu görevler. ile ilgili en iyi istiyor
örnek olarak, bir C var# Başlangıçta çeşitli veri okuma uygulaması "type" bizim veritabanında tablo ve uygulama etrafında geçen bir koleksiyon bilgileri depolar. bu bilgi gereklidir bu veritabanı her zaman isabet etmemizi engelliyor.
şu anda uygulama 10 tablolar senkronize veri okuma. gerçekten uygulama okumak farklı bir iş parçacığı paralel olarak çalışan tüm her masadan istiyorum. bu uygulama, başlangıç ile devam etmeden önce bütün konuları tamamlamak bekleyin.
ben BackGroundWorker içine baktı ama sadece yukarıdaki gerçekleştirilmesi konusunda biraz tavsiye istiyorum.
- Bu yöntem bizim uygulama başlangıç zamanı hızlandırmak için mantıklı geliyor
- Nasıl en iyi tüm konuları her iş parçacığının iş birbirinden bağımsız olduğunu akılda tutarak işleyebilir biz, bütün bu konuları devam etmeden önce tamamlamak için beklemek gerekir.
ileri bazı cevaplar bekliyorum
CEVAP
Bunun için benim tercihim tek bir WaitHandle üzerinden bu işi ve bir sayaç kilitleme önlemek için Kilitli kullanmak için:
class Program
{
static void Main(string[] args)
{
int numThreads = 10;
ManualResetEvent resetEvent = new ManualResetEvent(false);
int toProcess = numThreads;
// Start workers.
for (int i = 0; i < numThreads; i )
{
new Thread(delegate()
{
Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
// If we're the last thread, signal
if (Interlocked.Decrement(ref toProcess) == 0)
resetEvent.Set();
}).Start();
}
// Wait for workers.
resetEvent.WaitOne();
Console.WriteLine("Finished.");
}
}
Bu iyi çalışıyor, ve ipler, kilitleme tanıtan olmadan işleme herhangi bir sayı için ölçekler.
Ne kadar İsmen daha sonra dosyası yeni...
Nasıl parçacığı ile bitirmek için bekl...
Ne kadar farklı niyet ile başlatılan b...
Ne kadar zaman hesaplamak için iOS iki...
AngularJS - birden fazla kaynak sorgul...