乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 175|回复: 14

编辑器如何立即显示消息& # 65311;

[复制链接]

23

主题

48

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
140
发表于 2016-9-11 23:56:23 | 显示全部楼层 |阅读模式
在 for 循环中使用函数 Editor.WriteMessage() 时,消息无法立即显示。所有消息都同时列出,直到CAD命令完成。
像这样:
for (int i = 0; i
{
......
编辑..WriteMessage(“\nCalculating {0}...”, tp.pointNo);
}
编辑器类是否有任何方法可以立即显示消息?

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2016-9-12 00:55:44 | 显示全部楼层
您是否在交易中执行此操作?如果是这样,在提交事务之前不会发生任何事情。...只是一个想法。
回复

使用道具 举报

57

主题

559

帖子

13

银币

中流砥柱

Rank: 25

铜币
786
发表于 2016-9-12 00:56:22 | 显示全部楼层
我想应该是tps。pointNo<br>应该在循环迭代时写入消息<什么是tps<循环中的其余部分是什么样子的?
回复

使用道具 举报

23

主题

48

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
140
发表于 2016-9-12 02:11:58 | 显示全部楼层

没有交易
下一个代码相同:
  1. [CommandMethod("nn")]
  2.         public static void nn()
  3.         {
  4.             Editor ed = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor;
  5.             for (int i = 0; i < 10000; i++)
  6.             {
  7.                 ed.WriteMessage("\n{0}", i);
  8.             }
  9.         }

可以显示该消息,直到for循环完成
我想我应该一个接一个地看到从0到9999打印的消息。但是,等了大约一秒钟后,我看到所有的信息都被打印在一起了<也许是因为单线?
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2016-9-12 02:24:28 | 显示全部楼层
尝试在循环中放置一个“睡眠”来减慢它的速度,该循环会很快完成,并且看起来它正在等待完成,尤其是如果您刚刚加载dll,甚至可能会有一点JIT延迟,使其看起来像是在等待。
回复

使用道具 举报

23

主题

48

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
140
发表于 2016-9-12 02:43:35 | 显示全部楼层

我tried.But这似乎不起作用......
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2016-9-12 17:28:15 | 显示全部楼层
嗯,它在我的机器上工作,我也尝试了递归以显示另一个选项。有时VS在您运行调试时不会重新编译,请确保您进行完整的构建以确保您使用的是最新版本的代码。我的测试是在Bricscad中完成的,所以那里可能有什么东西,我之前遇到过很多两个之间的奇怪异常。public静态ululeRectest(int count)。
{。
编辑_AcAp.Application.DocumentManager.MdiActiveDocument.Editor。
如果(计数。
{。
ed.WriteMessage("\n{0}", count);。
System.Threading.Thread.Sleep(1000);。
递归(计数+1);。
}。
}。

[命令方法("nn")]。
公共静态无效测试()。
{。
递归(1);。
}。

[命令方法("nnn")]。
公共静态无效test2()。
{。
编辑_AcAp.Application.DocumentManager.MdiActiveDocument.Editor。
for(int i=1; i。
{。
ed.WriteMessage("\n{0}", i);。
System.Threading.Thread.Sleep(1000);。
}。
}。

回复

使用道具 举报

23

主题

48

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
140
发表于 2016-9-12 21:54:54 | 显示全部楼层
重新编译并使用了递归方法,仍然无法在AutoCAD2016中工作。
但是在AutoCAD2008中,它工作得非常好。
MickD,谢谢你的帮助。
回复

使用道具 举报

57

主题

559

帖子

13

银币

中流砥柱

Rank: 25

铜币
786
发表于 2016-9-12 22:19:41 | 显示全部楼层
我刚刚在2016年进行了测试,看起来它也在做同样的事情。
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2016-9-12 22:49:03 | 显示全部楼层

和……一样吗?
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-4 16:49 , Processed in 0.258199 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表