Получение статуса прогресса из метода библиотеки классов - PullRequest
1 голос
/ 26 апреля 2010

Это приложение, которое я делаю, использует библиотеку классов (если я осмелюсь так назвать), чтобы выполнить большую часть работы: Два основных метода (DoWork и UndoWork) используют другие классы для достижения своей цели. Теперь, когда это работает, я хочу выйти из среды тестирования консоли и создать графический интерфейс.

Как получить статус, скажем, метода DoWork () для обновления индикатора выполнения? Должен ли я мультилатировать библиотеку классов (которая в настоящее время работает с консолью и Windows.Forms) для обновления? Проблема в том, что мне, безусловно, придется заставить библиотеку классов использовать Window.Forms, которая испортит консольные приложения для тестирования (и их много - я тестировал все время, а потом все вместе). *

Не могли бы вы предложить какие-нибудь идеи или места, которые я могу прочитать об идеях (весь смысл написания этой программы заключается в том, чтобы выучить всех)?

О, кстати, такие предложения, как «предвидение» или «планирование», вероятно, здесь не помогут ... (сейчас, во всяком случае!)

Ответы [ 2 ]

1 голос
/ 26 апреля 2010

Вместо того, чтобы взломать DoWork(), чтобы фактически нарисовать обновление статуса, просто измените его, чтобы предоставить обновления прогресса делегату, который вы (необязательно) предоставите при инициализации DoWork().

Таким образом, вы можете предоставить делегата, который просто печатает обновление статуса, когда вы консольное приложение, и вы можете предоставить тот, который вызывает обновление индикатора выполнения в приложении с графическим интерфейсом.

0 голосов
/ 26 апреля 2010

Вы должны заставить метод принимать дополнительный параметр, который реализует интерфейс или делегат для получения отчетов о ходе выполнения.
Затем вы должны выполнить неинтерактивную реализацию интерфейса для консольных приложений и реализацию, которая обновляет элемент управления ProgressBar для WinForms.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...