none
執行緒存取問題 RRS feed

  • 問題

  • 小弟有form1 與 form2 表單

    form1與form2各有一個textbox

    Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

            Dim a As Threading.Thread = New Threading.Thread(AddressOf a1)
            a.Start()
        End Sub
        Public Sub a1()
            Dim f2 As Form2 = New Form2
            Application.Run(f2)
        End Sub

    End Class

    請問要如何將form2執行緒textbox的值按下按鈕後  同步form1 textbox的值?

    能否給個範例參考

    2015年11月26日 上午 07:39

解答

  • 你應該先這麼試, 寫一個只有一個 Form , Form 上有一個 Label 的程式, 然後在裡面生一個 Thread 去變更 Label 的 Text 屬性.

    先搞懂怎麼跨執行緒存取 UI, 再進行下一步


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2015年11月28日 下午 01:20
    版主
  • 目前 我的問題已排除了

    只要加入thread.textbox1.text = textbox1.text 即可解決

    2015年12月1日 上午 04:13

所有回覆

  • 這類的問題, 論壇已經有非常多的討論, 你可以參考如下:

    論壇搜尋 跨表單

    論壇搜尋 跨執行緒處理


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2015年11月26日 上午 07:50
    版主
  • 不好意思Bill大大  其實我有上網找過 跨執行緒存取 但很多東西我實在搞不清楚  所以才想 利用範例  到編譯器裡頭  一行一行的了解它運作方式和其中的代碼意思 不知能否撥空幫小弟這個忙呢感謝~
    2015年11月26日 上午 09:19
  • 在 .Net 中, 跨執行緒處理只要記得一件事,  如果你要變更某個 UI, 必須在該 UI 的執行緒上執行.

    比方 Control.Invoke 方法, 就表示傳遞的該委派引數會在 Control 所在的執行緒上執行.


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2015年11月26日 下午 03:26
    版主
  • 我在上網找找看相關資料~
    2015年11月28日 下午 12:27
  • 你應該先這麼試, 寫一個只有一個 Form , Form 上有一個 Label 的程式, 然後在裡面生一個 Thread 去變更 Label 的 Text 屬性.

    先搞懂怎麼跨執行緒存取 UI, 再進行下一步


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2015年11月28日 下午 01:20
    版主
  • VB Samples 101 抓 MultiThreading 那個來跑看看,舊版的 VS 有中文版(含註解),新版的都整合到 code sample 去了,只有英文版。

    https://code.msdn.microsoft.com/Multithreading-829d92d4


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2015年11月29日 上午 09:56
  • 目前 我的問題已排除了

    只要加入thread.textbox1.text = textbox1.text 即可解決

    2015年12月1日 上午 04:13