I would like to have the width of a GoLink derived class to be wider than 1, which is the width if you just assign the Pen to one of the “Pens” collection. If I assign Pen = new Pen(Color.Green, 4), I really need to dispose of this when the object is destroyed, so should implement IDisposable, and call Dispose(). The other option is the “Using” statement in the override where the Pen is used, but it seems to me this creation/destruction of the Pen every time will impact performance for no good reason. Is there any way to change the width of the link without creating a specific new Pen of that width (i.e. Go would take care of the resource)?
BTW, the Processor example appears to have a resource leak related to this, unless I'm not looking at it correctly.
You really need to create a new Pen to change the width of your GoLink. Of course you can share that Pen among multiple links if you want.