For Each, Process und text changed

  • VB.NET

Es gibt 25 Antworten in diesem Thema. Der letzte Beitrag () ist von picoflop.

    @picoflop

    ich weiss nicht, ob ich das gerade richtig verstehe, aber ich vermute du denkst das hier

    Mr.BlackStar < mikeb69 ? :D

    ich kenne hier die leute noch nicht so gut... ^^
    Ich weiss auch nicht wer hier erfahrener is als der andere xD

    Trotzdem hat mir mr.black sehr geholfen :>
    bzw beide :D

    @Rinecamo

    Danke :) geht auch =D

    Sinlikez schrieb:

    Trotzdem hat mir mr.black sehr geholfen :>

    Das Problem mit Application.DoEvents:

    Kommt ein Mann zum Arzt und sagt "Herr Dr, immer wenn ich den rechten Arm hebe tut es weh". Sagt der Arzt "Na, dann heben sie den Arm doch nicht".

    Hat der Arzt in diesem Fall geholfen?

    Im Zweifel sollte man nicht versuchen, eine "Umgehung" (mangels besseren Wissens) als "Lösung" zu verkaufen.

    Mr. BlackStar schrieb:

    Besser als Programmfehler.

    Wobei ein (kurzfristig) nicht reagierendes UI erstmal kein "Fehler" per se ist, sondern eine Unschönheit. Und .Net bietet inzwischen (VB2010 mit FW4 und Async Extensions) so dermaßen elegante Methoden, dass die beste Empfehlung für einen Anfänger ist:
    Erstmal nicht drum kümmern, sondern (übenderweise) Programme schreiben, die eben nicht "lange" rechnen.

    Wobei ich mal getestet habe:

    VB.NET-Quellcode

    1. Dim stp As Stopwatch
    2. Dim dummy As String = "foo"
    3. GC.Collect()
    4. GC.WaitForPendingFinalizers()
    5. GC.Collect()
    6. stp = Stopwatch.StartNew
    7. Dim a() = Process.GetProcesses
    8. For Each p As Process In a
    9. If p.ProcessName = dummy Then
    10. MessageBox.Show("very unlikely ...")
    11. End If
    12. Next
    13. stp.Stop()
    14. MessageBox.Show(String.Format("{0} Processes found in {1} ticks (100ns each)", a.Length, stp.ElapsedTicks))

    Dauert nie mehr als 8.000 Ticks (also 0.8 ms) für zb 110 Prozesse. Da ist es unwahrscheinlich, dass der Anwender das wahrnimmt ...