我正在通过 SharpDX 使用 Direct2D 来绘制一些简单的线条图。我创建了一个 PathGeometry,然后调用 Open() 来获取 GeometrySink 并将线条添加到接收器。GeometrySinks 是一次性的,所以我认为我应该这样做:
var linePath = new D2D.PathGeometry(D2dFactory);
using (var sink = linePath.Open())
{
sink.BeginFigure(point0, D2D.FigureBegin.Hollow);
sink.AddLine(point1);
sink.AddLine(point2);
sink.EndFigure(D2D.FigureEnd.Open);
sink.Close();
}
此代码有效,但 VS 2012 的代码分析说我不应该两次处理 GeometrySink。这里真的发生了吗?也许当我打电话sink.Close()
?如果是这样的话,我应该摆脱这种using()
说法。使用 GeometrySink 的正确方法是什么?