Ho un'applicazione multi-thread che analizza del testo e ha bisogno di usare English Culture Info per analizzare i numeri da questo testo. Quindi, non voglio creare EngCulture ogni volta che chiamo la funzione di analisi. Attualmente sto passando a EngCulture come parametro, ma non ne sono felice. Voglio definire l'EngCulture come membro statico, quindi sarà condiviso dai thread.CultureInfo thread safety
La documentazione di Msdn dice che "Qualsiasi membro statico pubblico (Condiviso in Visual Basic) di questo tipo è thread-safe.Tutti i membri dell'istanza non sono garantiti come thread-safe." Sto semplicemente usando la seguente funzione, quindi come potrei sapere se TryParse usa o meno membri di un'istanza di EngCulture?
public static CultureInfo EngCulture = new CultureInfo("en-US", false);
void parser()
{
if (int.TryParse(value, NumberStyles.Number, EngCulture, out num))...
}
Sì, la promessa readonly lo rende thread-safe. –
Does 'CultureInfo.ReadOnly' garantisce garanzie sulla sicurezza dei thread? Perché [read-only e threadsafe sono diversi] (http://blogs.msdn.com/b/ericlippert/archive/2011/05/23/read-only-and-threadsafe-are-different.aspx). –
@ ta.speot.is: Ottima domanda. Ne ero curioso e [ho fatto una domanda a riguardo] (http://stackoverflow.com/q/36766649/87698). – Heinzi