Objectif: Renversez 20 threads qui atteindront tous la méthode SessionFactory.GetSessionFactory(key)
en même temps à des fins de test. (Je suis en train de simuler un environnement multi-thread tels que ASP.NET)Ce code est-il réellement multithread?
Question: En utilisant la méthode EndInvoke()
je suis essentiellement appel à la méthode GetSessionFactory(key)
synchrone ou est mon code correct à simuler plusieurs threads tous frapper GetSessionFactory(key)
en même temps?
Merci,
Kyle
public void StressGetSessionFactory()
{
for (int i = 0; i < 20; i++)
{
Func<string, ISessionFactory> method = GetSessionFactory;
IAsyncResult asyncResult = method.BeginInvoke("RBDB", null, null);
ISessionFactory sessionFactory = method.EndInvoke(asyncResult); //My concern is with this call
Debug.WriteLine("RBDB ISessionFactory ID: " + sessionFactory.GetHashCode());
}
}
static ISessionFactory GetSessionFactory(string key)
{
return SessionFactory.GetSessionFactory(key);
}
Il suffit de cliquer sur la coche verte sous les meilleures réponses :) –