Обычно у нас есть такое требование:
категория поддержки медленной обработки оборудования, такие как сетевые коммуникации, последовательная связь, печать и т.д.
в это время часто должны быть заключенным в потоке внутри класса, так что класс поддерживает асинхронную обработку, а затем опубликовать событие уведомления или обратный вызов делегат основной поток ,
потому что класс должен быть хороший пакет, наружная резьба не видна, в то время как внутренний класс только событие не связано с интерфейсом, то BeginInvoke Контрольного потерял сюжет. На данный момент я больше в любовь с SynchronizationContext объектов, простой и простой
Пусть я проектирую класс TestClient, там Connected событий
класс TestClient {личное workThread Thread; частный SynchronizationContext mainThreadSynContext;
общественный TestClient () // Конструктор конечно {mainThreadSynContext = SynchronizationContext.Current; // где запись контекста главного потока workThread = новая тема (новая ThreadStart (DoWork)); // создать новый поток является основным потоком выполнения}
частная пустота OnConnected (состояний объекта) // Поскольку это основной объект синхронизации потоков Сообщение называется, выполняется в основном потоке {// здесь обратно в основной поток внутри // сделать что-то}
частная пустота DoWork () // это workThread поток выполнения {// сделать что-то здесь (какая связь ...)
// Это и закончил работу
mainThreadSynContext.Post (новый SendOrPostCallback (OnConnected), NULL); // уведомить основной поток}} --------------------- Автор: HonorDuan Источник: CSDN Оригинал: HTTPS : //blog.csdn.net/qq_23127851/article/details/78270988 Предупреждение: Данная статья является блоггером оригинал статьи, воспроизведены, пожалуйста, приложите Боуэн ссылку!
https://bbs.csdn.net/topics/210063471