Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Pour une classe dérivée de la classe System.EnterpriseServices.ServicedComponent, il est possible d'utiliser le pool d'objet de COM+ pour éviter toute charge liée à l'instanciation d'objets de toutes pièces. Ainsi, les objets sont extraits d'un pool lorsqu'ils sont activés. Pour plus d'informations, voir la rubrique sur le pool d'objet.
Pour créer un objet mis en pool et définir sa taille et ses délais
Définissez une classe dérivée de la classe System.EnterpriseServices.ServicedComponent, puis appliquez l'attribut ObjectPoolingAttribute à cette classe. Par exemple, le code ci-dessous définit une classe appelée
TestObjectPoolinget définit les propriétés MinPoolSize, MaxPoolSize et CreationTimeout de la classe.<ObjectPooling(MinPoolSize := 2, MaxPoolSize := 5, _ CreationTimeout := 20000)> _ Public Class TestObjectPooling Inherits ServicedComponent End Class[ObjectPooling(Enabled=true, MinPoolSize=2, MaxPoolSize=5, CreationTimeout=20000)] public class TestObjectPooling : ServicedComponent { }Remplacez les méthodes Activate , Deactivate et CanBePooled de la classe System.EnterpriseServices.ServicedComponent.
Testez l'objet mis en pool dans une application cliente :
Créez une instance de la classe d'objets mis en pool et appelez les méthodes sur l'objet mis en pool. Par exemple, le code ci-après crée une instance de la classe
TestObjectPoolinget appelle une méthodePerform.Public Class App Overloads Public Shared Sub Main(args() As String) Dim order As New TestObjectPooling() order.Perform()public class App { public static int Main(string[] args) { TestObjectPooling order = new TestObjectPooling(); order.Perform();Appelez la méthode DisposeObject pour que l'objet regagne le pool.
ServicedComponent.DisposeObject (order)ServicedComponent.DisposeObject (order);
Exemple
<ObjectPooling(MinPoolSize := 2, MaxPoolSize := 5, _
CreationTimeout := 20000)> _
Public Class TestObjectPooling
Inherits ServicedComponent
Public Sub Perform ()
' Method contents go here.
End Sub
Protected Overrides Sub Activate()
' Called when removed from the pool.
End Sub
Protected Overrides Sub Deactivate()
' Called before deactivating or placing back in pool.
End Sub
Protected Overrides Function CanBePooled() As Boolean
' Called after Deactivate. Indicate your vote here.
Return True
End Function
End Class
[ObjectPooling(Enabled=true, MinPoolSize=2, MaxPoolSize=5, CreationTimeout=20000)]
public class TestObjectPooling : ServicedComponent
{
public void Perform ()
{
// Method contents go here.
}
protected override void Activate()
{
// Called when removed from the pool.
}
protected override void Deactivate()
{
// Called before deactivating or placing back in pool.
}
protected override bool CanBePooled()
{
// Called after Deactivate. Indicate your vote here.
return true;
}
}
Voir aussi
Référence
ObjectPoolingAttribute
System.EnterpriseServices Namespace
Concepts
Résumé des services COM+ disponibles
Pool d'objet
.gif)
Copyright ©2007 par Microsoft Corporation. Tous droits réservés.