我想在我的C#WebForm应用程序中使用后台线程(这不是Windows窗体问题)。线程监视TCP/IP连接,查找数据以显示在接收端。当数据出现时,我想将其写入我的网页上的文本框。问题是,当我尝试从此线程写入文本框时,实际上没有任何内容写入文本框,然后加载网页。我知道这是一个跨线程问题,而不是页面加载问题。将数据从后台线程传输到网页上的文本框
我的程序在渲染网页前等待数据写入“文本框”。我尝试使用委托,但没有奏效。此外,我已经搜索了一个解决方案,但大多数答案处理Windows窗体和WebForms似乎行事不同。
对于我的C#WebForm应用程序,如何访问正在后台线程中创建的数据,以便将其加载到我的网页上的文本框中?
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) –
这不是重复的问题是关于webforms。 – VMAtm