Subprocesamiento en .NET Compact Framework
Actualización: noviembre 2007
.NET Compact Framework admite la funcionalidad de subprocesamiento básica, pero no es compatible con las siguientes características de la versión completa de .NET Framework:
Obtener acceso a la pila comprimida del subproceso actual.
Representación administrada de la estructura OVERLAPPED de Win32.
Clases que administran el contexto de ejecución.
Uso de semáforos.
Atributos del estado de los subprocesos.
La mayoría de las operaciones de identificador de espera salvo obtener el identificador.
.NET Compact Framework permite utilizar el delegado ThreadStart con el método Thread.Start y el delegado TimerCallback con un objeto Timer.
Puede especificar los parámetros de tiempo de espera utilizando los métodos de subprocesamiento siguientes:
El método WaitOne(Int32, Boolean) de WaitHandle.
El método Join(Int32) de Thread.
Cambia en grupos de subprocesos
De forma predeterminada, en .NET Compact Framework versión 1.0 el número máximo de subprocesos de un grupo de subprocesos es 256 con un tamaño de pila de 64 KB. En .NET Compact Framework versión 2.0 y versiones posteriores, este límite se ha reducido a un máximo de 25 subprocesos con un tamaño de pila de 128 KB, lo que se asemeja más a la funcionalidad de la versión completa de .NET Framework.
Se producirá un error en una solicitud HTTP, lo que producirá una excepción si no está disponible ningún subproceso en el grupo de subprocesos. En la tabla siguiente se muestran las principales excepciones a este escenario.
Exception |
Condición |
---|---|
No puede poner en la cola la devolución de llamada del usuario. |
|
No hay suficientes subprocesos en el grupo de subprocesos para finalizar la operación. |
Puede evitar la ejecución de los subprocesos reduciendo el número actual de solicitudes Web o aumentando el número máximo de subprocesos permitido en el grupo de subprocesos. .NET Compact Framework 2.0 admite el método SetMaxThreads. Especifique sus parámetros tal y como se describe en la tabla siguiente.
Parameter |
Description |
---|---|
workerThreads |
Número máximo de subprocesos de trabajo en el grupo de subprocesos. Puede ser cualquier valor. |
completionPortThreads |
Número máximo de subprocesos asincrónicos en el grupo de subprocesos. En la actualidad, .NET Compact Framework no tiene en cuenta este valor, pero debe establecerse en un valor comprendido entre 1 y 1.000. A efectos de compatibilidad con futuras versiones, se recomienda establecerlo en 500, ya que éste es el valor predeterminado en la versión completa de .NET Framework. |
En los dispositivos que ejecutan .NET Compact Framework 1.0, puede reducir el número máximo de subprocesos permitido en el grupo de subprocesos cambiando un valor de configuración del Registro. Establezca MaxThreads en la clave CFROOT\ThreadPool en el valor deseado. Tenga en cuenta que esta clave del Registro no se utiliza en las versiones posteriores de .NET Compact Framework.