留言版 相簿 網誌
播放中的相簿
忙忙忙

Plurk  

最近這一陣子在寫 Thread 的程式
常常會需要將 Thread 的結果輸出到主視窗中
目前有兩個方法可以在 Thread 中修改主視窗中的物件屬性
物件像是例如 Listbox、TextBox、RichTextBox 等等

方法一
最簡單但是不建議
因為會導致程式不穩定當掉

public partial class Form1 : Form
{
   public Form1()
   {
     InitializeComponent();
     RichTextBox.CheckForIllegalCrossThreadCalls = false;
   }
}

只要在 Form1 設定屬性 CheckForIllegalCrossThreadCalls = false 就好了

方法二
推薦的方法
public partial class Form1 : Form
{
   public Form1()
   {
     InitializeComponent();
   }

   private delegate void InvokeFunction(string str);
   private void output2(string str)
   {
     if (this.richTextBox2.InvokeRequired)
        this.Invoke(new InvokeFunction(this.output2), new object[] { str });
     else
     {
        this.richTextBox2.Text += str + "\r\n";
        //捲軸置底
        this.richTextBox2.SelectionStart = this.richTextBox2.Text.Length;
        this.richTextBox2.ScrollToCaret();
     }
   }
}



Mowd | 收藏 | 09/11/02 11:31 | 被閱讀 1491 次 | 引用 | 我要留言
本文章引用位址 :: http://blog.mowd.idv.tw/tbserver.php?mode=tb&sl=819
名字 ::   刪除留言用密碼 ::  
網站 ::  
驗證碼 ::     
私密迴響


[上一頁]   [1] ... [41][42][43][44][45][46][47][48][49] ... [844]   [下一頁]
網站導覽  
文章 搜尋 月曆 分類
留言 人氣 網站 引用



廣告連結
參觀者統計
總共 1442857 人
今天 458 人
昨天 695 人