InprocServer32
Registra un server in-process a 32 bit e specifica il modello di threading dell'apartment in cui il server può essere eseguito.
Voce del Registro di sistema
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID
{CLSID}
InprocServer32
(Default) = path
ThreadingModel = value
Osservazioni
ThreadingModel è un valore REG_SZ che specifica il modello di threading. I valori possibili sono illustrati nella tabella seguente.
Valore | Descrizione |
---|---|
Appartamento | Apartment a thread singolo |
Ambedue | Apartment a thread singolo o multithreading |
Gratuito | Appartamento multithreading |
Neutrale | Appartamento neutro |
È necessario utilizzare lo stesso valore per ogni oggetto fornito dal server in-process.
Se threadingModel non è presente o non è impostato su un valore, il server viene caricato nel primo apartment inizializzato nel processo. Questo appartamento è talvolta definito apartment a thread singolo principale (STA). Se il primo sta sta in un processo viene inizializzato da COM, anziché da una chiamata esplicita a CoInitialize o CoInitializeEx, viene chiamato STA host. Ad esempio, COM crea un host STA se un server in-process da caricare richiede un sta sta, ma attualmente non è presente alcuna sta sta nel processo.
Quando possibile, il server in-process viene caricato nello stesso apartment del client che lo carica. Se il modello di threading dell'apartment client non è compatibile con il modello specificato, il server viene caricato come indicato nella tabella seguente.
Modello di threading del server | Il server apartment viene eseguito in |
---|---|
<\nspecificato> | STA principale |
Ambedue | Stesso appartamento del cliente |
Gratuito | Appartamento multithreading |
Neutrale | Appartamento neutro |
Se il modello di threading del server è Apartment, l'apartment in cui viene caricato il server dipende dall'apartment in cui è in esecuzione il client, come indicato nella tabella seguente.
Il client apartment viene eseguito in | Il server apartment viene eseguito in |
---|---|
Multithreading | Host STA |
Neutro (nel thread STA) | Stesso appartamento del cliente |
Neutro (nel thread MTA) | Host STA |
COM può anche creare un apartment multithreading host (MTA). Se un client in un apartment a thread singolo richiede un server in-process il cui modello di threading è Gratuito quando non è presente alcun MTA nel processo, COM crea un host MTA e lo carica nel server.
Per un server in-process a 32 bit, è necessario registrare InprocHandler32, InprocServer, InprocServer32e chiavi di inseriscibili. La voce InprocServer è necessaria solo per garantire la compatibilità con le versioni precedenti. Se manca, la classe funziona ancora, ma non può essere caricata nelle applicazioni a 16 bit.
Se un contenitore cerca un server in-process nel Registro di sistema, la versione a 16 bit ha priorità con un contenitore a 16 bit e la versione a 32 bit ha priorità con un contenitore a 32 bit.
Argomenti correlati