iT邦幫忙

0

C#的InvokeRequired一下if一下else??

  • 分享至 

  • xImage

C#問題請教大家
```

public delegate void del();
        private void button1_Click(object sender, EventArgs e)
        {
            Thread t0 = new Thread(f);
            t0.Start();
            //f();
        }
        void f()
        {
            if (this.InvokeRequired)
            {
                del test = new del(f);
                this.Invoke(test);
            }
            else 
            {
            }
        }
為什麼this.Invoke(test);跑完會先去else??
因為委派變數test做new del(f)...又Invoke叫自己一次...發現是自己叫自己是同線程...所以跑else?
rofellos iT邦新手 2 級 ‧ 2022-02-23 09:56:02 檢舉
你可以讀一下甚麼是Control.InvokeRequired
ntustzeus iT邦新手 2 級 ‧ 2022-02-25 21:40:51 檢舉
這個一般是用在從新開的Thread要返回UI Thread時用的,InvokeRequired就是在檢查是否須要切換
簡單說就是要變更畫面只能在UI Thread上,你如果要從其它Thread執行的話,要先切換回UI Thread
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答