C#WebFormアプリケーションでバックグラウンドスレッドを使用しようとしています(これはWindowsフォームの問題ではありません)。スレッドは、TCP/IP接続を監視して、受信側に表示されるデータを探します。データが表示されたら、私は自分のウェブページのテキストボックスにそれを書きたいと思っています。問題は、このスレッドからテキストボックスに書き込もうとすると、実際にテキストボックスに書き込まれずにWebページが読み込まれるということです。私はこれがクロススレッドの問題であり、ページロードの問題ではないことを知っています。バックグラウンドスレッドからWebページのテキストボックスにデータを転送
私のプログラムは、Webページをレンダリングする前に、データが "テキストボックス"に書き込まれるのを待ちます。私はデリゲートを使ってみましたが、うまくいきませんでした。また、私は解決策を探し求めましたが、ほとんどの回答はWindows FormsとWebFormsの扱いが異なるようです。
私のC#WebFormアプリケーションでは、Webページのテキストボックスにロードできるように、バックグラウンドスレッドで作成されているデータにアクセスするにはどうすればよいですか?
Thread ipThread;
protected void Page_Load(object sender, EventArgs e)
{
ipThread = new Thread(() => ipSocketRcv();
ipThread.IsBackground = true;
ipThread.Priority = ThreadPriority.BelowNormal;
ipThread.Start();
}
void ipSocketRcv()
{
while (true)
{
if receive data...
myTextBox.Text = data; **//This does not work**
finished = true;
}
}
protected void SendCmd_Click(object sender, EventArgs e)
{
//send command over ip connection when button pressed
waitToLoad(); //Then wait for data to be received before rendering page
}
private void waitToLoad()
{
while (!finished)
{
Thread.Sleep(0);
}
finished = false;
}
[他のスレッドからのテキストボックスへの書き込み?](http://stackoverflow.com/questions/519233/writing-to-a-textbox-from-another-thread) –
これは次のように重複していません質問はウェブフォームに関するものです。 – VMAtm