में निष्पादन है या नहीं, मेरे पास एएसपी.नेट एमवीसी 3 एप्लीकेशन है। मैं AsyncController का उपयोग कर रहा हूँ और नए धागे बना रहा हूँ। क्या यह सत्यापित करने का कोई तरीका है कि मैं ASP.NET थ्रेड पूल की बजाय I/O समापन बंदरगाहों का उपयोग कर रहा हूं?कैसे बताएं कि एमवीसी असिंक कंट्रोलर थ्रेड एएसपी.नेट पूल या आई/ओ प्राप्ति पोर्ट
क्या थ्रेड में कोई संपत्ति है। कंटेंट थ्रेड या कहीं और मैं यह पहचानने के लिए जांच सकता हूं कि थ्रेड कहां चल रहा है?
यहाँ कोड का एक उदाहरण है कि मैं
public class HomeController : AsyncController
{
public void CarsComplexAsync(string make)
{
AsyncManager.OutstandingOperations.Increment(2);
System.Diagnostics.Debug.WriteLine("Enter CarsComplexAsync: " + DateTime.Now);
Action getCarsAsync =() =>
{
List<Car> cars = CarService.GetCars(make);
AsyncManager.Parameters["cars"] = cars;
AsyncManager.OutstandingOperations.Decrement();
};
Action getTrucksAsync =() =>
{
List<Car> trucks = CarService.GetTrucks(make);
AsyncManager.Parameters["trucks"] = trucks;
AsyncManager.OutstandingOperations.Decrement();
};
getCarsAsync.BeginInvoke(null, null);
getTrucksAsync.BeginInvoke(null, null);
}
public ActionResult CarsComplexCompleted(List<Car> cars, List<Car> trucks)
{
cars.AddRange(trucks);
return View(cars);
}
public static class CarService
{
private static List<Car> _cars = new List<Car>
{
new Car{ Make = "Ford", Model = "F-150", Color = "White", Year = 2010},
new Car{ Make = "Chevy", Model = "Camero", Color = "Black", Year = 1984},
new Car{ Make = "Peugeot", Model = "406 Coupe", Color = "White", Year = 2010},
new Car{ Make = "Dodge", Model = "Charger", Color = "Red", Year = 1974}
};
public static List<Car> GetCars(string model)
{
Thread.Sleep(5000);
List<Car> cars = _cars;
return cars;
}
public static List<Car> GetTrucks(string make)
{
Thread.Sleep(5000);
List<Car> cars = _cars;
return cars;
}
}
@ डारिन: मैं कोड –
कोड शामिल करने के लिए अपना प्रश्न अपडेट करता हूं, शायद मुझे फ़्रांस में बनाई गई कार को जोड़ना चाहिए था। –
@ बरदेव, अब आपने अपना उदाहरण दिखाया है, इसमें कोई I/O प्राप्ति बंदरगाह शामिल नहीं है। ऑपरेशन पूल से धागे पर निष्पादित किया जाता है जिसे उनके निष्पादन के दौरान एकाधिकार किया जा रहा है। यहां एक [उदाहरण]] (http://msdn.microsoft.com/en-us/library/ee728598.aspx) एक AsyncController का है जो दूरस्थ वेब सेवा को कॉल करता है और I/O प्राप्ति बंदरगाहों का उपयोग करता है। आईओसीपी का उपयोग अक्सर वेब सेवा कॉल, डेटाबेस कॉल और स्ट्रीम IBO के साथ फ़ाइल I/O जैसे रिमोट सिस्टम से निपटने के दौरान किया जाता है। ... –