İlk kapalı, yaptığınız şeyin sens olup olmadığını bilmek önemlidir ible. Hepsi CPU'ya bağlıysa, bunu yapmaz, IMO; Bir web sunucusu zaten çok iş parçacıklı ve genellikle başlamak için yoğun bir yer. Şanslar yüksek, her şeyi birden fazla çekirdek kullanarak yavaşlatacaksınız. Yine de, 1 kullanıcı için harika görünecek!
Eğer IO-bağlı iseniz, o zaman bunu yapmak için herhangi bir sayı vardır; Tercih edilen şey, konuştuğunuz her şeyin dahili asenkron metotlarını kullanmak olacaktır, bu yüzden normal iş parçacıklarından ziyade IOCP'yi kullanabilirsiniz. Yani, NetworkStream
için, BeginRead(...)
vb. Kullanırsınız.
Daha sonra her şeye birlikte katılmanız gerekir. Daha çok yol var; Ben şahsen ben yönetilmeyen kod gitmeden önler gibi Monitor.Wait
ve Monitor.Pulse
kullanmak eğilimindedir (birçok bekletme kolları aslında OS tarafından sağlanan).
Ayrıca dikkat: iş parçacığı/paralellik, başarısızlığın birçok eğlenceli yolunun yanında bir paket içinde gelir; normalde sadece senkronizasyon için statik yöntemleri/veri hakkında endişelenmenize gerek vardır, ancak tek bir istekte birden fazla iş parçacığınız varsa bir şey yapıyor: çarpmalara dikkat edin ... çok var.
.NET'in bir sonraki sürümü, süreklilikleri çok daha kolay hale getirmektir; Mevcut deneysel kodu IOCP senaryolarına ne kadar kolay uygulayabileceğimizi görmem gerekiyor.
çok iş parçacığı kullan –
Merhaba Abhishek, En az bir saniye gecikme olması gereken bir anda tüm 4 yöntemi arayamazsınız. Eğer hala 4 metodu aramak istiyorsanız, o zaman Davide Piras çoklu-okuma özelliğini kullandığını ve geri dönüş değeri için "BackgroundWorker" sınıfı beacause 'ın yardımını aldığınızı söyleyene kadar beklemeniz gerekir ve 4 metodun tamamı çalışmadığı sürece. – SharpUrBrain
@SharpUrBrain - "bir saniyeyle" ne alakası var?Ve IMO BackgroundWorker ayrıca web katmanı –