Ich habe eine Multi-Threaded-Anwendung, die einige Text analysiert und es benötigt English Culture Info zum Parsen von Zahlen aus diesem Text. Also, ich möchte nicht jedes Mal, wenn ich die Parsing-Funktion aufrufen, EngCulture erstellen. Derzeit übergebe ich EngCulture als Parameter, aber ich bin nicht glücklich damit. Ich möchte die EngCulture als ein statisches Mitglied definieren, so dass es von Threads geteilt wird.CultureInfo Thread Sicherheit
Die Dokumentation von Msdn besagt, dass "alle öffentlichen statischen Member (Shared in Visual Basic) dieses Typs threadsicher sind. Alle Instanzenmitglieder sind nicht garantiert threadsicher." Ich benutze nur die folgende Funktion, also wie könnte ich wissen, ob TryParse Instanz Mitglieder der EngCulture verwendet oder nicht?
public static CultureInfo EngCulture = new CultureInfo("en-US", false);
void parser()
{
if (int.TryParse(value, NumberStyles.Number, EngCulture, out num))...
}
Ja, das readonly Versprechen macht es thread-safe. –
Gewährleistet 'CultureInfo.ReadOnly' Thread-Sicherheitsgarantien? Weil [schreibgeschützt und Threadsafe unterschiedlich sind] (http://blogs.msdn.com/b/ericlippert/archive/2011/05/23/read-only-and-threadsafe-are-different.aspx). –
@ ta.speot.is: Große Frage. Ich war selbst neugierig darauf und habe eine Frage dazu gestellt (http://stackoverflow.com/q/36766649/87698). – Heinzi