Каков рекомендуемый способ передачи данных между двумя потоками в С#?C#

Место общения программистов C#
Ответить
Anonymous
 Каков рекомендуемый способ передачи данных между двумя потоками в С#?

Сообщение Anonymous »

У меня есть основной поток графического интерфейса и второй поток, работающий внутри собственного ApplicationContext (чтобы поддерживать его работоспособность, даже когда нет никаких действий). Я хочу вызвать метод во втором потоке из потока графического интерфейса, но если я просто вызову thread.Method(); Кажется, он работает в моем основном потоке графического интерфейса и приводит к тому, что мой графический интерфейс перестает отвечать на запросы. Как лучше всего вызывать методы в разных потоках?

Обновление:
Что я действительно хочу здесь сделать, так это общаться между двумя потоками, а не общаться с графическим интерфейсом. Графический интерфейс является одним из потоков, которым нужно будет взаимодействовать с моим вторым потоком.

Обновление №2:
Хорошо, я, должно быть, действительно что-то упускаю. Я создал событие и делегата, и мой рабочий поток подписался на это событие. Но когда я вызываю Invoke(MyEvent); из моего потока графического интерфейса работа, которую выполняет рабочий поток, в конечном итоге оказывается в потоке графического интерфейса и зависает поток графического интерфейса до тех пор, пока он не завершит обработку. Возможно ли то, что я пытаюсь сделать, без опроса статического объекта?

Подробнее здесь: https://stackoverflow.com/questions/334 ... -2-threads
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»