/// <summary>
 /// Imposta il provider interno di accesso ai contesti di elaborazione dei task, utilizzando quello
 /// specificato, restituendo true se quest'ultimo è diverso da null; in caso contrario, viene usato
 /// il provider predefinito e restituisce false per segnalarlo.
 /// </summary>
 /// <param name="provider">il provider da usare per l'elaborazione dei task</param>
 /// <returns>true se il nuovo provider viene impostato correttamente</returns>
 public bool SetContextProvider(ITaskPerformerContextProvider provider)
 {
     if (provider == null)
     {
         lock (m_ContextProviderLocker)
         {
             m_ContextProvider = new TaskPerformerContextManager();
         }
         return(false);
     }
     else
     {
         lock (m_ContextProviderLocker)
         {
             m_ContextProvider = provider;
         }
         return(true);
     }
 }
 /// <summary>
 /// Imposta il provider interno di accesso ai contesti di elaborazione dei task, utilizzando quello
 /// specificato, restituendo true se quest'ultimo è diverso da null; in caso contrario, viene usato
 /// il provider predefinito e restituisce false per segnalarlo.
 /// </summary>
 /// <param name="provider">il provider da usare per l'elaborazione dei task</param>
 /// <returns>true se il nuovo provider viene impostato correttamente</returns>
 public bool SetContextProvider(ITaskPerformerContextProvider provider)
 {
     if (provider == null)
     {
         lock (m_ContextProviderLocker)
         {
             m_ContextProvider = new TaskPerformerContextManager();
         }
         return false;
     }
     else
     {
         lock (m_ContextProviderLocker)
         {
             m_ContextProvider = provider;
         }
         return true;
     }
 }