just_joke 发表于 2012-8-12 17:43:03

autocad进度条不显示?

            用以下代码,可以实现autocad进度条与程序进度同步:
            ProgressMeter PM = new ProgressMeter();
            PM.Start("正在保存分幅地图");
            PM.SetLimit(RectangleObjIDs.Count);

            for(int i = 0; i < RectangleObjIDs.Count; i++)
            {
                     //................
                     PM.MeterProgress();
                     System.Windows.Forms.Application.DoEvents();
            }
            PM.stop();

            但是我在上面的For循环中,加入以下代码后,进度条就不显示了
            Database NewDataBase = new Database();
                  ObjectId NewBtrID = ObjectId.Null;
                  using (Transaction trans = NewDataBase.TransactionManager.StartTransaction())
                  {
                        BlockTable NewBt = (BlockTable)trans.GetObject(NewDataBase.BlockTableId, OpenMode.ForRead);
                        BlockTableRecord NewBtr = (BlockTableRecord)trans.GetObject(NewBt, OpenMode.ForRead);
                        NewBtrID = NewBtr.ObjectId;
                        trans.Commit();
                  }
                  db.WblockCloneObjects(CurSelObjIDs, NewBtrID, new IdMapping(), DuplicateRecordCloning.Replace, false);
                  NewDataBase.SaveAs(CurMapName, DwgVersion.Newest);

                上面代码的作用是把当前dwg文件中的各区域的图形分别保存为新的dwg文件。

sieben 发表于 2012-8-12 17:55:32

只是 “进度条就不显示了”?那“把当前dwg文件中的各区域的图形分别保存为新的dwg文件”到底成功了没有?

just_joke 发表于 2012-8-12 18:47:59

sieben 发表于 2012-8-12 17:55 static/image/common/back.gif
只是 “进度条就不显示了”?那“把当前dwg文件中的各区域的图形分别保存为新的dwg文件”到底成功了没有?

就进度条不显示,保存dwg成功了

sieben 发表于 2012-8-12 20:26:02

那么应该是和ObjectARX不支持多线程有关。

david96007 发表于 2014-6-14 15:20:17

楼主的问题最终怎么解决的?
页: [1]
查看完整版本: autocad进度条不显示?