Я пытаюсь получить значение поля моего текстового поля в потоковом классе, но значение всегда пусто. Я попытался проверить с точкой останова на отладчике, но он просто показывает, что «для оценки функции требуются все потоки».C# не удалось получить значение поля текстового поля при многопоточности
Я нашел this explanation на MSDN, но до сих пор не удастся получить значение текстового поля в классе threading.
Вот мое окно загрузки, чтобы запустить функцию резьбы:
//Read D6010 Status To Get Weight Value on D6020
ThreadStart readWeightRef = new ThreadStart(readWeightStatusThread);
Thread readWeightThread = new Thread(readWeightRef);
readWeightThread.Start();
Вот мой Резьбонарезной Код класса:
public void readWeightStatusThread()
{
string readStatus = (string)txtD6010Status.Invoke(new Func<string>(()=> txtD6010Status.Text));`
while (Thread.CurrentThread.IsAlive)
{
MessageBox.Show(readStatus);
}
}
Любой способ решить эту проблему?
вы начинаете тему в событии загрузки? текстовый текст уже установлен в конструкторе? –
Является ли поле определенно заполненным до того, как вызывается 'Load'? Кроме того, переместите назначение строки в цикл (я предполагаю, что это просто для целей тестирования.) –