Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Prozesse Durchsuchen » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 2 Beiträge
eulerscheZahl

Warum wandelst du das Array in eine List um? Die hat nur dann Vorteile, wenn du häufig etwas löschen/anhängen willst. Bei einer festen Länge ist ein Array schneller.

Ich verstehe nicht ganz, wo der auskommentierte Teil stehen soll und was dann stattdessen inaktiver Code wäre.
Da du in foreach auf Processes[i] zugreifst, vermute ich folgende Struktur:
code:
1:
2:
3:
for (int i = 0; i < Controls.Count; i++)
    foreach (Control c in this.Controls)
        ((PictureBox)c).BorderStyle = (Path.GetFileNameWithoutExtension(c.Name) == Processes[i].ProcessName) ? BorderStyle.Fixed3D : BorderStyle.FixedSingle;

in foreach änderst du den Borderstyle für jede PictureBox und durch die for-Schleife machst du das wiederholt. Das bewirkt das Flackern.
InformaTiger Prozesse Durchsuchen

Hallo,
es handelt sich hierbei nur indirekt um ein Problem, ich habe nämlich folgenden Code geschrieben der funktioniert. Er ließt die laufenden Prozesse aus und ändert je nachdem ob ein Prozess läuft oder nicht den BorderStyle der Picture Boxen. Nur das Problem ist ich würde gerne verstehen warum der auskommentierte nicht funktioniert, weil der meiner Ansicht nach der selbe sein müsste.

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
  
            while (this.Visible)
            {
                this.Invoke((MethodInvoker)delegate
                {
                    Process[] Processes = Process.GetProcesses().Distinct().ToArray();
                    List<string> Processnames = new List<string>();

                    for (int i = 0; i < Processes.Length; i++)
                    {
                        Processnames.Add(Processes[i].ProcessName);
                    }

                    for (int i = 0; i < Controls.Count; i++)
			        {
                        if (Processnames.Contains(Path.GetFileNameWithoutExtension(this.Controls[i].Name)))
                        {
                            ((PictureBox)this.Controls[i]).BorderStyle = BorderStyle.Fixed3D;
                        }
                        else
                        {
                            ((PictureBox)this.Controls[i]).BorderStyle = BorderStyle.None;
                        }

                        /*foreach (Control c in this.Controls)
                        {
                            if (Path.GetFileNameWithoutExtension(c.Name) == Processes[i].ProcessName)
                            {
                                ((PictureBox)c).BorderStyle = BorderStyle.Fixed3D;
                            }
                            else
                            {
                                ((PictureBox)c).BorderStyle = BorderStyle.FixedSingle;
                            }
                        }*/

                    }
                });
                Thread.Sleep(50);


Wahrscheinlich ist das ganze hier ersichtlich einfach und ich blamiere mich gerade, dass ich es nicht sehe aber wissen würde ich es trotzdem gerne.

Edit: Funktionieren im Grunde tun ja beide Varianten, nur bei der auskommentierten "flakern" die Picture Boxen weil sie so schnell aktualisiert werden.

Augenzwinkern

Mfg
InformaTiger