スレッドクラスのmy textboxフィールドの値を取得しようとしていますが、値は常に空です。デバッガでブレークポイントを確認しようとしましたが、「関数評価ではすべてのスレッドを実行する必要があります」と表示されます。C#はマルチスレッドでテキストボックスのフィールド値を取得できません
私はMSDNでthis explanationを見つけましたが、スレッドクラスのテキストボックス値を取得することはできません。ここで
は、スレッド機能を開始するために私の窓の負荷である:ここで
//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'が呼び出される前にフィールドに確実にデータが入力されていますか?また、ループに文字列の割り当てを移動します(私はそれがテスト目的のためだけであると仮定します)。 –