Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > .NET для новичков > Я написал базовый класс Worker |
Автор: Dims 27.10.2008, 22:25 | ||
Посмотрите, правильно ли я написал базовый класс Worker с использованием делегатов?
По моим представлениям, наследник должен имплементить SpecificWork и (необязательно) Done. Внутри SpecificWork нужно проверять ShouldStop.get на предмет не пора ли завершиться. Пользователь может вызвать Start чтобы запустить поток, может вызвать ShouldStop = true чтобы мягко приказать ему завершиться и может проверять Working на предмет того, работает ли ещё поток фактически. |
Автор: PashaPash 28.10.2008, 00:01 |
Dims, а как же стандартный System.ComponentModel.BackgroundWorker? |
Автор: Dims 28.10.2008, 00:39 |
Во-первых, я про него не знал ![]() Во-вторых вопрос потренироваться с делегатами. Я короче понял, что делегат это вовсе никакой не указатель на функцию, а скорее класс-обёртка. |
Автор: rooks 28.10.2008, 22:03 | ||||
так оно и есть) http://msdn.microsoft.com/en-us/library/96b1ayy4.aspx
|
Автор: jonie 30.10.2008, 00:21 | ||
Dims спорю на пиво, что класс наследник не сможет проверить ? у вас он private. могу запустить (вызвать start) много раз. по мне так стоит сделать не так... зачем аждый раз это наследовать? чтобы перегрузить 2-3 функции ? берем этот класс, делаем его sealed. что надо относительно потоков делаем в нем, и также делаем интерфейс "задача", который и будет "выполняеться" в другом потоке... хотя это все отдает BackgroundWorker-ом чет 8-) |