Gerade im fraglichen Projekt, wo der Fehler bei mir auftrat, noch mal nachgeschaut. Vergiss das mit dem constructor. Du musst einfach nur Canvas.Lock/Unlock vor und nach deinen Zeichenoperationen aufrufen. Das war des Rätsels Lösung.
Edit²: Hat zumindest bei mir gereicht.
Anscheinend nicht nur bei Dir...
Seltsam, seltsam...
... aber ich glaube es war so, dass
GDI-Objekte immer einem bestimmten Thread angehören. ...
Genau das ist es. Windows-
GDI-Ressourcen sind Thread-Affine. D.h. auf sie darf nur im erzeugenden Thread zugegriffen werden. Ansonsten kracht irgendwo irgendwas.
OK, wieder was gelernt.
Auf jeden Fall vielen Dank für Eure Antworten,
andere Baustellen rufen mich jedoch , da jetzt diese anscheinend begradigt wurde