So, ich hab eine Lösung für das "Problem" gefunden. Kurzer Rückblick:
Mein Programm öffnet immer eine Textdatei nach der anderen und durchsucht diese nach einem vom User eingegebenen Wort. Während das unter Mac OS prima funktionierte ist es unter Windows a.) vergleichsweise langsam gewesen und b.) bei zu vielen Treffern war es abgeschmiert. Ich hab die Suchroutine auf so ziemlich jede mir bekannte Art unter Realbasic aufgebaut ohne eine Änderung im Verhalten festzustellen und hatte mich mit dem Verhalten schon abgefunden. Dieser Tage aber hatte ich noch eine kleine Änderung am Programm vorgenommen und bin da zufällig über die sogenannten Threads gestolpert. Ich hatte überlegt und wusste daher, mit der Suche im eigenen Thread hast du es noch nicht versucht und schaden kanns ja nicht. Also hab ich einen Thread ins Projekt gezogen und die Suchroutine in den Thread (Run-Event) gepackt. Und siehe da, die ursprünglichen Probleme sind weg, jetzt funktioniert das Programm auch unter Windows so wie unter Mac OS. Es gibt keine Hänger mehr und auch keine Abstürze. Ich kann mir nicht erklären warum aber egal. Will mal die Tage mich näher mit Threads in RB beschäftigen, hat da vielleicht noch jemand einen Tipp wo ich das was nachlesen könnte? Die Sprachreferenz ist da relativ mau. Grüße Michael Am 08.11.2009 18:43 Uhr schrieb "Michael Köhler" unter <realba...@skie.info>: > Hallo Christian, > > dank dir für den Tipp mit DebugView. Werd mal schaun ob ich das installieren > darf (hab eigentlich keine Adminrechte aber daran soll es nicht scheitern). > > 1. Dateien sind nur einige kB groß, die Größte 32 kB (grade mal > nachgeschaut) > > 2. Bei wieviel MB wäre das? Das Programm bekommt zum Start ca. 5MB und das > geht bis zum Absturz auf ca. 15 MB hoch laut dem TaskManager > > 3. siehe 2. > > 4. Nein, ich gebe ja das Encoding an, vgl. meine erste Nachricht von heute > Morgen: > > ... > result=Split(text.ReadLine(Encodings.WindowsANSI), "8 x leer ") > ... > > oder darf ich das nicht im "Split" machen und muss erst zwischenspeichern? > > Grüße Michael > > Am 08.11.2009 14:56 Uhr schrieb "Christian Schmitz" unter > <realbasicli...@monkeybreadsoftware.de>: > >> >> On 08.11.2009, at 09:22, Michael Köhler wrote: >> >>> Hab grad noch mal versucht statt App.DoEvents 1 Progressbar1.refresh >>> zu >>> verwenden...da hängt er sich dann auch auf wenn es zu viele Treffer >>> sind. >> >> Speicherverbrauch anschauen! >> >> DebugView installieren (von microsoft kostenlos) >> >> und viele Ausgaben über system.debuglog ausgeben und anschauen, wo es >> exakt hängt. >> >> Mögliche Bugs in deinem Programm: >> * Du versuchst Dateien über 1 GB zu laden, die nichts in RAM passen? >> * Du verbrauchst so viel RAM, dass RB out of memory geht und crasht >> * Du verbrauchst so viel RAM, dass das Programm swappt wie verrückt >> * Du lädst Textdateien ohne Textencoding anzugeben und RB hängt beim >> Encodingraten. >> >> Gruß >> Christian >> >> > > >