news 2026/4/15 13:12:15

兰顿蚂蚁——CAD二次开发

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
兰顿蚂蚁——CAD二次开发

效果如下:

private static void OnTick(object sender, EventArgs e) { if (_currentStep >= _maxSteps) { Stop(); return; } // 检查是否暂停 if (_isPaused) return; Document doc = Application.DocumentManager.MdiActiveDocument; Database db = doc.Database; var ed = doc.Editor; using (doc.LockDocument()) { using (Transaction tr = db.TransactionManager.StartTransaction()) { BlockTable bt = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForRead); BlockTableRecord ms = (BlockTableRecord)tr.GetObject( bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite); // 第一步暂停逻辑:如果第一步还没完成且需要第一步暂停 if (_pauseAtFirstStep && !_firstStepCompleted) { // 只执行一步 StepAllAnts(tr, ms); _currentStep++; _firstStepCompleted = true; // 立即暂停 _isPaused = true; tr.Commit(); ed.UpdateScreen(); ed.WriteMessage("\n第一步完成,已暂停。按空格继续。"); return; // 直接返回,不再执行后面的代码 } else { // 正常执行多步 for (int i = 0; i < _stepsPerTick; i++) { if (_currentStep >= _maxSteps) break; StepAllAnts(tr, ms); _currentStep++; } tr.Commit(); } } ed.UpdateScreen(); } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/14 23:46:45

进程优先级和切换

第一部分&#xff1a;进程优先级 (Process Priority&#xff09;系统中的进程成百上千&#xff0c;但 CPU&#xff08;核&#xff09;可能只有几个。谁先用 CPU&#xff1f;这就涉及到竞争性。为了合理分配资源&#xff0c;必须要有优先级 。1. PRI 与 NI&#xff1a;一对“相爱…

作者头像 李华