J'ai donc une instance commune d'une classe partagée entre 2 autres classes sur des threads différents. laissez-moi vous expliquer:Thread Sécurité de retour de rendement (est-ce?)
public class Config
{
public IEnumerable<Regex> GetSafeRuleRegex()
{
foreach (string rule in this.SafeRules)
{
Regex regex = null;
try
{
regex = new Regex(rule, RegexOptions.IgnoreCase);
}
catch(Exception e)
{
Trace.Write(e.Message);
}
if (regex != null)
yield return regex;
}
}
}
public class Dispatcher
{
public void Start()
{
var config = new Config();
for (var i = 0; i < 10; i++)
{
ThreadPool.QueueUserWorkItem(new WaitCallback(o => new Item(config)));
}
}
}
cela causera des problèmes de verrouillage?
Qu'est-ce que this.SafeRules? Collection? Est-ce modifié? –
Sans savoir ce que 'Item' fait avec' config' ou le reste de 'Config' il est impossible de dire si cela causera des" problèmes de verrouillage ". Quels sont les problèmes de verrouillage de toute façon? – MSN
J'aurais dû dire les conditions de course. ma faute. @Aaron: Les règles de sécurité ne sont pas souvent modifiées, elles sont placées dans un fichier de configuration. Je suis novice dans le domaine du threading, je ne savais pas très bien stocker une liste de Regex et les utiliser, mais je dois m'assurer que l'utilisateur a passé une regex valide, afin que l'application ne soit pas explosée. –