У меня есть приложение ASP.NET MVC 3.Я использую AsyncController и создаю новые темы.Есть ли способ проверить, что я использую порты завершения ввода / вывода вместо пула потоков ASP.NET?
Есть ли свойство в Thread.CurrentThread или в другом месте, которое я могу проверить, чтобы определить, где находится поток
Вот пример кода, который я выполняю
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;
}
}