Обмен данными с потоком
Добрый день!
Подскажите, пожалуйста, имеется форма и поток.
Как правильно изменять значение переменной(-ных) потока, когда он уже запущен и работает?
P.S. Код не нужен, интересует только механизм.
Добрый день!
Подскажите, пожалуйста, имеется форма и поток.
Как правильно изменять значение переменной(-ных) потока, когда он уже запущен и работает?
P.S. Код не нужен, интересует только механизм.
Вам, по идее, не должно хотеться запустить отдельный поток. Если вы воспользуетесь Task
'ами и конструкцией async/await, проблемы синхронизации отпадут сами собой.
Расскажите лучше, какую задачу вы на самом деле решаете.
P. S. Корректно доставить обновлённые данные в поток без «сотрудничества» со стороны потока невозможно. Если вы всё ещё хотите делать это вручную, вашему потоку придётся в определённых точках опрашивать данные (не забудьте о lock
'ах!).
Обновление
Так, а почему бы тогда не сделать всё же async-версии кода? То есть пусть будет много маленьких async-функций вместо одной, которой нужно обновлять данные в процессе.
Если отдельного потока совсем-совсем не избежать, можно связывать потоки через producer-consumer pattern.