Обмен данными с потоком

Рейтинг: -1Ответов: 1Опубликовано: 22.11.2014

Добрый день!

Подскажите, пожалуйста, имеется форма и поток.

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

P.S. Код не нужен, интересует только механизм.

Ответы

▲ 1Принят

Вам, по идее, не должно хотеться запустить отдельный поток. Если вы воспользуетесь Task'ами и конструкцией async/await, проблемы синхронизации отпадут сами собой.

Расскажите лучше, какую задачу вы на самом деле решаете.


P. S. Корректно доставить обновлённые данные в поток без «сотрудничества» со стороны потока невозможно. Если вы всё ещё хотите делать это вручную, вашему потоку придётся в определённых точках опрашивать данные (не забудьте о lock'ах!).

Обновление

Так, а почему бы тогда не сделать всё же async-версии кода? То есть пусть будет много маленьких async-функций вместо одной, которой нужно обновлять данные в процессе.

Если отдельного потока совсем-совсем не избежать, можно связывать потоки через producer-consumer pattern.