Benutzer mit den meisten Antworten
Byte Array an Serial Port - Codeproblem ? VS2015

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 ...
- Bearbeitet Zerstreuter Dienstag, 23. Mai 2017 09:42
Antworten
-
Um aus einem anderen Thread auf die Progressbar zugreifen zu können kannst du mit Invoke arbeiten.
Progressbar.Invoke(()=> { // Code... Progressbar.value++; });
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Mittwoch, 31. Mai 2017 10:52
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Mittwoch, 7. Juni 2017 14:08
Alle Antworten
-
Hallo Zerstreuter,
klingt nach einer Exception.
Leg doch mal einen Try Catch drum herum und lass dir das mal ausgeben.
- Bearbeitet David Stania Dienstag, 23. Mai 2017 13:55
-
Hallo David,
stimmt, es war eine Exception ..
Ich hab versäumt die Prozessbars threadübergreifend beschreibbar zu machen ..
Da werde ich wohl ne seperate subroutine für brauchen ..
Auf die Idee mit try hätt ich ja auch ma allein kommen können .. Ich benutz das nicht so gern ;).
danke erstma für den Tip
-
Um aus einem anderen Thread auf die Progressbar zugreifen zu können kannst du mit Invoke arbeiten.
Progressbar.Invoke(()=> { // Code... Progressbar.value++; });
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Mittwoch, 31. Mai 2017 10:52
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Mittwoch, 7. Juni 2017 14:08