[英]Textbox text from background worker?
我一直在試圖弄清楚如何從后台工作人員中獲取我的文本框的文本或其他屬性。 有人知道怎么做這個嗎? 我不能將它作為參數傳遞,因為它需要是實時的。 謝謝您的幫助!
我認為您只需要調用該屬性(偽代碼):
private void bgw1_DoWork(object sender, DoWorkEventArgs e)
{
// looping through stuff
{
this.Invoke(new MethodInvoker(delegate { Text = textBox1.Text; }));
}
}
或者如果 WPF 中需要:
private void bgWorker_DoWork(object sender, DoWorkEventArgs e)
{
string text = null;
myTextBox.Dispatcher.Invoke(new Action(delegate()
{
text = myTextBox.Text;
}));
}
使用后台工作人員的ReportProgress方法和事件。 這將為您切換到正確的線程。
我認為你應該使用調用方法。
這是我的例子。
delegate void myDelegate(string name);
//...
private void writeToTextbox(string fCounter)
{
if (this.InvokeRequired)
{
myDelegate textWriter = new myDelegate(displayFNums);
this.Invoke(textWriter, new object[] { fCounter });
}
else
{
textbox1.Text = "Processing file: " + fileCounter + "of" + 100;
}
}
//...
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
//...
writeToTextbox(fileCounter.ToString());
}
在dowork中,我操作了一些文本文件,並通知用戶到目前為止我已經處理了多少文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.