Segmentação no .NET Compact Framework
The .NET Compact Framework suporta principais funcionalidades de segmentação mas não oferece suporte os seguintes recursos no completo .NET Framework:
Acesso à pilha compactada no segmento em vigor.
A representação gerenciado do Win32 OVERLAPPED estrutura.
Classes que gerenciam o contexto de execução.
Uso de sinais.
Atributos de estado do segmento.
A maioria das operações de Wait Handle, exceto obter o handle.
The .NET Compact Framework suporta o uso do ThreadStart delegado para uso com o Thread.Start método e oferece suporte usando o TimerCallback delegado com um Timer.
Você pode especificar parâmetros de time limite, usando os seguintes métodos de segmentação:
The WaitOne(Int32, Boolean) método de um WaitHandle.
The Join(Int32) método de um Thread.
Alterações em Pools de segmentos
No .NET Compact Framework versão 1,0, o número máximo padrão de thread s em um thread pool é 256 thread s com um dimensionar de pilha de 64 KB. No .NET Compact Framework versão 2,0 e versões posteriores, esse limite é reduzido a um máximo de 25 segmentos com um dimensionar de pilha de 128 KB, mais parecido com a funcionalidade de completo .NET Framework.
Uma solicitação HTTP irá falhar e lançar uma exceção se nenhum segmento estiver disponível no pool de segmento.A tabela a seguir mostra as principais exceções nessa situação.
Exceção |
Condição |
---|---|
Não é possível enfileirar o callback do usuário. |
|
Não há segmentos suficientes no pool de segmentos para concluir a operação. |
Você pode evitar o esgotamento de segmentos, reduzindo o número de solicitações simultâneas da Web, ou aumentando o máximo de segmentos permitidos no pool de segmentos.The .NET Compact Framework 2,0 oferece suporte a SetMaxThreads método. Especifique seus parâmetros conforme descrito na tabela a seguir.
Parâmetro |
Descrição |
---|---|
workerThreads |
O número máximo de segmentos de trabalho no pool de segmentos.Isso pode ser qualquer valor. |
completionPortThreads |
O número máximo de segmentos assíncronos no pool de segmentos.The .NET Compact Framework atualmente ignora esse valor, mas deve ser definido entre 1 e 1.000. Para compatibilidade futura, 500 é recomendável porque é o valor padrão para o total .NET Framework. |
Para dispositivos que executam .NET Compact Framework 1.0, você pode diminuir o máximo de segmentos no pool de segmentos permitidos, alterando uma configuração do registro. Defina MaxThreads na chave CFROOT\ThreadPool para o valor desejado.Observe que essa chave do registro não é usada por versões mais recentes de .NET Compact Framework.