private void menuItem4_Click(object sender, System.EventArgs e)
{
ThreadStart threadStart = new ThreadStart(CreateGraph);
Thread thread = new Thread(threadStart);
thread.Start();
//CreateGraph(); }
private void CreateGraph()
{
MapInfo.Mapping.FeatureLayer nodeLayer = (MapInfo.Mapping.FeatureLayer)this.mapControl1.Map.Layers["Nliaoning"];
MapInfo.Mapping.FeatureLayer lineLayer = (MapInfo.Mapping.FeatureLayer)this.mapControl1.Map.Layers["Rliaoning"];
graph = new Graph(nodeLayer, lineLayer);
long l = DateTime.Now.Ticks;
graph.ConstructGraph();
l = (DateTime.Now.Ticks - l) / 10000;
MessageBox.Show("构建图需要的时间是:" + l + "毫秒");
this.hashGraph = graph.HashGraph;
graph.NodeLoop();
this.nodeCount = graph.NodeCount;
this.nodeName = graph.NodeName;
this.nodeI = graph.NodeI;
}
上面的CreateGraph()放到主线程中运行没有错误,但是放到一个新建的线程里就出错,
{
ThreadStart threadStart = new ThreadStart(CreateGraph);
Thread thread = new Thread(threadStart);
thread.Start();
//CreateGraph(); }
private void CreateGraph()
{
MapInfo.Mapping.FeatureLayer nodeLayer = (MapInfo.Mapping.FeatureLayer)this.mapControl1.Map.Layers["Nliaoning"];
MapInfo.Mapping.FeatureLayer lineLayer = (MapInfo.Mapping.FeatureLayer)this.mapControl1.Map.Layers["Rliaoning"];
graph = new Graph(nodeLayer, lineLayer);
long l = DateTime.Now.Ticks;
graph.ConstructGraph();
l = (DateTime.Now.Ticks - l) / 10000;
MessageBox.Show("构建图需要的时间是:" + l + "毫秒");
this.hashGraph = graph.HashGraph;
graph.NodeLoop();
this.nodeCount = graph.NodeCount;
this.nodeName = graph.NodeName;
this.nodeI = graph.NodeI;
}
上面的CreateGraph()放到主线程中运行没有错误,但是放到一个新建的线程里就出错,
无效的Rliaoning?