那裏。 我正在使用C#.wpf,並且我從C#源代碼獲取了一些代碼,但是我無法使用它。有什麼我必須改變?還是做?線程在C#中調用.WPF
// Delegates to enable async calls for setting controls properties
private delegate void SetTextCallback(System.Windows.Controls.TextBox control, string text);
// Thread safe updating of control's text property
private void SetText(System.Windows.Controls.TextBox control, string text)
{
if (control.InvokeRequired)
{
SetTextCallback d = new SetTextCallback(SetText);
Invoke(d, new object[] { control, text });
}
else
{
control.Text = text;
}
}
如上碼,該錯誤是在InvokeRequired
和Invoke
目的是,我有一個文本框,其是內容,將遞增爲每個進程。
這裏是文本框的代碼。 SetText(currentIterationBox.Text = iteration.ToString());
代碼有什麼問題嗎?
感謝您的幫助
編輯
// Delegates to enable async calls for setting controls properties
private delegate void SetTextCallback(System.Windows.Controls.TextBox control, string text);
// Thread safe updating of control's text property
private void SetText(System.Windows.Controls.TextBox control, string text)
{
if (Dispatcher.CheckAccess())
{
control.Text = text;
}
else
{
SetTextCallback d = new SetTextCallback(SetText);
Dispatcher.Invoke(d, new object[] { control, text });
}
}
而究竟是什麼錯誤? – 2011-04-27 11:40:00
你有沒有得到任何錯誤,或者你只假定你的代碼有錯誤? – sikender 2011-04-27 11:41:51
有什麼建議嗎?錯誤'System.Windows.Controls.TextBox'不包含'InvokeRequired'的定義,並且沒有找到接受'System.Windows.Controls.TextBox'類型的第一個參數的擴展方法'InvokeRequired'(你是否缺少使用指令或程序集引用?) – Reza 2011-04-27 11:43:30