我寫了擴展類,用於文本框控件。.net多線程
public static class Extensions
{
public static void AddMessage(this System.Windows.Forms.TextBox textbox,string message){
textbox.AppendText(DateTime.Now.ToString() + " " + message + "\r\n");
}
}
我的文本框控件,傳遞到通過構造函數中的 「核心」 級,從形式,如:
public static TextBox text;
public Core(TextBox text)
{
Core.text = text;
}
這裏是事件:
...{
change.DataChanged += new Opc.Da.DataChangedEventHandler(OnDataChange);
}...
回調:
public void OnDataChange(object subscriptionHandle, object requestHandle, Opc.Da.ItemValueResult[] values)
{
Send(values,configuration.service.adress);
}
public static void Send(Opc.Da.ItemValueResult[] values,string addr) {
text.AddMessage("test"); //here comes exception
}
and the text.AddMessage(.. 。)我有:「Microsoft.VisualStudio.Debugger.Runtime.CrossThreadMessagingException」
編輯: 我覺得我的問題不是功能Add.Message,導致文本框來擴展已經與例外,就是即時通訊misssing?所以,我認爲我甚至無法從「發送」功能
編輯稱之爲「文」:除了「文本」從
change.DataChanged += new Opc.Da.DataChangedEventHandler(OnDataChange);
請參閱http://stackoverflow.com/questions/661561/how-to-update-gui-from-another-thread-in-c – alxx 2010-11-23 07:26:49