J'ai lu sur la programmation parallèle et même maintenant encore un peu confus sur l'ensemble des concepts. Disons que j'ai un seul projet avec environ 5 classes qui interagissent et ont des variables locales dans les méthodes et les variables accessibles à toutes les méthodes dans une seule classe et même 1 ou 2 variables accessibles à toutes les classes accédées par instanciation. Maintenant, en utilisant les threads, je sais que les variables globales seraient remplacées par plusieurs threads s'il n'y avait pas de verrouillage appliqué, mais pas de variables locales à une méthode/fonction, non? Ainsi, si j'exécutais le projet plusieurs fois, ce qui signifiait un nouveau processus, les méthodes et les variables seraient sûres pour les threads et aucune corruption de données ne se produirait. Donc, pour implémenter la programmation parallèle en utilisant la fabrique de tâches, si je crée un projet qui crée des tâches et que chaque tâche exécute une instance d'un autre projet, les variables et les données ne devraient-elles pas être corrompues? Mais que se passe-t-il si j'avais les fichiers de sortie et qu'ils sont nommés par la sortie & datetime.now.tostring, y aurait-il des problèmes de conflit et je demande cela sachant que j'ai vu cela se produire en l'essayant.programmation parallèle en .net 4.0
dim factory as new taskfactory
factory.startnew(addressof projectinstance.main)
Maintenant, cela peut-être bon sens pour la plupart d'entre vous donc soyez doux sur la critique s'il vous plaît. merci d'apprécier toute réponse.
EDIT:
Ceci est le module de création de fichier dans l'une des classes:
Private Sub createXML()
num += 1
Dim fileList As New ArrayList
Dim counter As Integer = 0
Dim file As String = Module1.infile
xmlfile = directoryPath & "\Feed" & DateTime.Now.ToUniversalTime.ToString("yyyyMMddhhmmss") & endExtension
fileList.Add(xmlfile)
Thread.Sleep(2000)
Dim doc As XmlDocument = New XmlDocument
xwriter = New XmlTextWriter(xmlfile, Encoding.UTF8)
xwriter.Formatting = Formatting.Indented
xwriter.Indentation = 2
xwriter.WriteStartDocument(True)
xwriter.WriteStartElement("Posts")
Dim j As Integer = 0
For i As Integer = 0 To gXmlList.Count() - 1
j += 1
parseXML(gXmlList(i))
....
Merci pour votre réponse, vraiment l'apprécier .... GLOBALS définis dans MyApp comprendrait mes fichiers de sortie que je suis générer si techniquement il serait ok ... parce que chaque tâche prend un fichier d'entrée et utilisé ce fichier d'entrée pour créer un fichier de sortie correspondant. Est-ce correct? – vbNewbie
J'ai mis à jour ma réponse. Les fichiers results_ {rank} .txt ne sont pas globaux, ils sont locaux pour chaque tâche. Si vous vouliez un seul fichier results.txt, cela serait considéré comme un état global. Notez que l'état global readonly est OK. L'écriture globale ou la lecture/écriture ne l'est pas. –