11/09/2015
Как отобразить статус внешнего процесса в командной строке AutoCAD
Предположим, что у нас имеется .NET-команда, которая запускает внешний процесс, которому требуется много времени для выполнения. Пока мы ожидаем его завершения, мы можем вывести индикатор прогресса в командную строку.Замечание: Следующая процедура доступна начиная с .NET 4.5, так как использует методы await и async.
Код - C#: [Выделить]
- [CommandMethod("TestCommand")]
- static public void TestCommand()
- {
- Method1();
- }
- static public async void Method1()
- {
- try
- {
- var doc = Application.DocumentManager.MdiActiveDocument;
- var ed = doc.Editor;
- for (int i = 0; i < 20; i++)
- {
- ed.WriteMessage("Обрабатывается {0}...", i);
- string result = await WaitASynchronously();
- ed.WriteMessage("Выполнено.\n");
- }
- }
- catch (System.Exception ex)
- {
- Application.ShowAlertDialog("Ошибка: " + ex.Message);
- }
- }
- static public async Task<string> WaitASynchronously()
- {
- await Task.Delay(500);
- return "Завершено";
- }
Автор перевода: Александр Ривилис
Обсуждение: http://adn-cis.org/forum/index.php?topic=3007
Опубликовано 11.09.2015