Как подключить SynchronizationContext из потока, не являющегося пользовательским интерфейсом - PullRequest
1 голос
/ 11 апреля 2011

Я работаю над модульным тестированием и должен передать контекст одного потока другому.В реальной жизни первым будет поток пользовательского интерфейса, и все будет хорошо (я надеюсь).Но мой модульный тест не имеет пользовательского интерфейса (это какой-то поток тестирования).Я прочитал: " Один поток, который всегда имеет SynchronizationContext, является потоком пользовательского интерфейса. " Можно ли присоединить контекст одного потока (не пользовательского интерфейса) к другому?Как это сделать?

1 Ответ

1 голос
/ 11 апреля 2011

Я думаю, вам может понадобиться переосмыслить свою стратегию тестирования.

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

Или попробуйте создать тест, чтобы ваша форма графического интерфейса работала так, как ожидалось, после того, как вы получили некоторые результаты из своего обратного потока (то есть правильно отобразили)

Создание модульных тестов для GUI довольно сложно.Вот почему люди склонны удалять всю бизнес-логику и любую другую логику за пределами графического интерфейса, чтобы ее можно было легко проверить.

возможно, вы можете рассмотреть возможность использования WPF с MVVM или WinForms с MVP, что упрощает рисование этой линии

...