none
Byte Array an Serial Port - Codeproblem ? VS2015 RRS feed

  • Frage

  • Hallo zusammen ..

    ich (blutiger Anfänger in C#) habe hier mit VisualStudio Comm. 2015 ein komisches Phänomen.

    Während der Entwicklung meines Programms wollte ich diese bestehende und funktionierende Routine

    using (FileStream fileStream = new FileStream(@file, FileMode.Open, FileAccess.Read, FileShare.Read))
    
                         {
                             BinaryReader binary = new BinaryReader(fileStream, Encoding.GetEncoding(28591));
                             serialPort.Write(binary.ReadBytes((int)fileStream.Length), 0, (int)fileStream.Length);
                         }

    ersetzen durch:

                        Byte[] toSendFile;
                        toSendFile = File.ReadAllBytes(file);
                        if (file.Contains("Tuner")) ProzessFlashTuner.Maximum = toSendFile.Length;
                        if (file.Contains("ext.bin")) ProzessFlashEXT.Maximum = toSendFile.Length;
    
                        for (int i = 0; i < toSendFile.Length; i++)
                        {
                            serialPort.Write(toSendFile, i, 1);
    
                            double statusD = i / 100;
                            if (statusD == (int)(i / 100))
                            {
                                string status = (i / toSendFile.Length).ToString();
                                writeMACstatus(status + "%");
                                if (file.Contains("Tuner")) ProzessFlashTuner.Value = i;
                                if (file.Contains("ext.bin")) ProzessFlashEXT.Value = i;
                            }
                        }

    dabei fällt mir beim Debuggen auf, das der Pfeil vom Einzelschrittablauf an der Schleife abrupt verschwindet. Ich bekomme keinerlei Feedback von VS2015 auch während des normalen Betriebs scheint die Schleife nicht ausgeführt zu werden.

    Ich verstehe leider nicht so recht warum.

    Als Anmerkung wäre vieleicht noch wichtig daß diese Routine als BackgroundWorker läuft.

    Hat einer von euch einen Tipp warum das nicht geht ?

    Danke schonmal im Vorraus ...


    Dienstag, 23. Mai 2017 09:29

Antworten

Alle Antworten